Een Android-app die over andere vensters kan tekenen en naar gedeelde opslag kan schrijven, kan instructies doorgeven aan de AI-agent die die telefoon bestuurt, in tekst die geen menselijk oog ooit zal zien. Nog twee stappen en dezelfde app voert opdrachten uit op de pc die de agent aanstuurt.
Onderzoekers hebben deze keten, samen met zes andere aanvallen, aangetoond tegen vijf open-source raamwerken voor mobiele agenten: AppAgent, AppAgentX, Mobile-Agent-v3, Open-AutoGLM en MobA. Iedereen viel op minimaal zes van de zeven.
Het artikel verscheen op 1 juli op arXiv en werd op 14 juli herzien. De auteurs zijn verbonden aan de Simon Fraser Universiteit, de Chinese Universiteit van Hong Kong, de Shandong Universiteit en het Xingtu Lab bij het Chinese beveiligingsbedrijf QAX.
Niets hier heeft een CVE, vertelde eerste auteur Zidong Zhang Het hackernieuws het team heeft geen bewijs dat de technieken buiten een gecontroleerde omgeving worden gebruikt. The Hacker News controleerde alle vijf de raamwerken en ontdekte dat de screenshotpaden, de shell-oproep en de fallback van de uitzending die de krant beschrijft, zich vanaf 17 juli nog steeds op hun hoofdtakken bevonden.
Zhang zei dat het team de betrokken beheerders een persoonlijke e-mail heeft gestuurd voordat de preprint werd geplaatst en dat het team “tot nu toe geen reactie heeft ontvangen”.
De escalatie is het minst exotische deel. De controller van AppAgent voert subprocess.run(adb_command, shell=True) uit en bouwt tekstinvoer door de modeluitvoer rechtstreeks in de adb shell-invoertekst {input_str} te plaatsen. Uit de lijst in de krant blijkt dat de functie helemaal niet is schoongemaakt.
De live code doet het marginaal beter en lang niet genoeg: het verwijdert spaties en enkele aanhalingstekens voordat wordt geïnterpoleerd, en laat de rest van de shell-metatekens met rust. Niet ;, niet &, niet >. Dus een string die het model van een scherm afleest en plichtsgetrouw typt, wordt gesplitst door de hostshell, en de achterste helft draait op de Windows-box van de operator.
Een payload ontworpen om calc.exe te starten deed precies dat in 20 van de 20 tests tegen AppAgent, AppAgentX, Mobile-Agent-v3 en MobA. Een aparte end-to-end run tegen AppAgent gebruikte test;pwd>rce_success en schreef de werkmap van de host naar een bestand.
Het is een bestandsrace om die string voor het model te krijgen. Open-AutoGLM voert screencap -p /sdcard/tmp.png uit en vervolgens een afzonderlijke adb-pull. Mobile-Agent-v3 schrijft naar een vaste /sdcard/screenshot.png en slaapt een halve seconde tussen de twee. AppAgentX schrijft naar /sdcard/ onder bestandsnamen met tijdstempel en een oplopende stappenteller, een patroon dat een aanvaller kan bekijken. AppAgent’s geleverde config.yaml stelt de screenshot-map nog steeds standaard in op /sdcard.
De onderzoekers hebben die kloof tussen de raamwerken getimed op 50 tot 500 ms, wat neerkomt op een gemiddelde van ongeveer 210 ms over 100 runs. Een achtergrondservice die elke 5 tot 10 ms een poll uitvoert, heeft ruimte om een bestandsvergrendeling uit te voeren, de PNG opnieuw te schilderen en los te laten voordat de agent deze ophaalt. Tampering landde 19/20 tot 20/20 tegen vier van de vijf.
Om het venster nog verder te vergroten, lieten ze de agent een onzichtbare overlay zien waarin werd beweerd dat er een netwerksynchronisatie actief was en werd gevraagd om drie seconden te wachten. Het model geloofde het.
Alle zes zichtmodellen die de onderzoekers testten, lazen tekst met een dekking van 2% in ten minste 18 van de 20 laboratoriumproeven. Het artikel plaatst dat niveau onder de typische menselijke detectie bij normaal kijken. GPT-4o, Claude Opus 4.5, Gemini 3 Pro en GLM-4V scoorden 20 van de 20. De cijfers stijgen niet naarmate de tekst beter zichtbaar wordt, omdat ze bij het plafond beginnen.

AutoGLM-Phone, een 9B-model dat op het apparaat zelf draait, was met 18 van de 20 de zwakste van de zes. Het menselijk zicht hanteert een drempel. De schermafbeelding niet.
De asymmetrie heeft ook een hardwareversie. Telefoons ronden hun hoeken af en snijden gaten voor camera’s, maar de framebuffer blijft rechthoekig, dus de pixels die in die gebieden worden weergegeven, zitten onder de rand en komen in elke schermafbeelding terecht. Op een Pixel 4 blijft er in één hoek ongeveer 78 pixels aan verborgen breedte over, genoeg voor een korte opdracht, en alle vijf de agenten lezen er de payloads uit.
Een derde truc slaat stealth volledig over: een toegankelijkheidsservice laat een nep-inlogactiviteit over de echte app vallen en laat de agent de inloggegevens van de gebruiker erin typen. Iemand kan aarzelen bij een onverwachte wachtwoordprompt. Geen van de vijf deed dat, in 100 onderzoeken.
Niemand heeft het toetsenbord geverifieerd
Agenten hebben geen goedgekeurd kanaal naar een telefoon, dus hergebruiken ze de debug-kanalen, en de goedkoopste aanval in de set valt daarbuiten. Open-AutoGLM base64 codeert de tekst die het typt en vuurt deze af op ADB_INPUT_B64, een impliciete uitzending die wordt opgepikt door ADB Keyboard, een testautomatiseringstool die is gebouwd om tekst te accepteren van alles wat deze uitzendt.
Dat is het gedocumenteerde doel ervan, en het wordt nog steeds gehandhaafd, met een pre-release van april met een Android 16-fix. ADB Keyboard doet wat zijn README belooft. De agenten hebben van een testharnas een productie-invoerleiding gemaakt.
Mobile-Agent-v3 houdt een smalle acceptatielijst bij: letters, cijfers en algemene interpunctie gaan via adb shell-invoertekst, en al het andere, dat wil zeggen elk niet-ASCII-teken, gaat teken voor teken uit over ADB_INPUT_TEXT. MobA is botter. Zijn type_text test de hele string met text.isascii(), dus één emoji of letter met accent waar dan ook in een bericht verzendt het hele bericht in één keer via de uitzending.
Elke app die dezelfde actie registreert, ontvangt dezelfde payload en heeft hiervoor geen toestemming nodig, dus niets waarschuwt de gebruiker. Wanneer een aanvaller in plaats daarvan toegang heeft, overhandigt TYPE_VIEW_TEXT_CHANGED dezelfde tekst in leesbare tekst, inclusief wachtwoordvelden, aan alle vijf.
De randvoorwaarden zijn reëel. Hiervoor is een app nodig die al is geïnstalleerd, een agent die daadwerkelijk aan het werk is en USB- of draadloze foutopsporing is ingeschakeld. De getroffen software is een open source-ontwikkelaarstool en niet de assistent die in een standaardtoestel is ingebakken.
First-party agenten, waaronder Samsung’s Bixby en Xiaomi’s XiaoAi, vielen buiten het bereik, net als iOS. Zhang maakte één kanttekening: voor verschillende aanvallen zijn minimale Android-rechten nodig, en voor één helemaal geen, wat volgens hem de drempel voor een gemotiveerde aanvaller verlaagt.
Eén variant heeft ook geen kwaadaardige app nodig. Omdat een lading zich in de chrominantiekanalen van een afbeelding kan verplaatsen in plaats van in de helderheid ervan, kan een aanvaller die het apparaat nooit aanraakt er een in een afbeelding begraven en de agent van het slachtoffer er een screenshot van laten maken vanuit een berichtenapp. De onderzoekers noemen dat eerder een verlengstuk dan een gemeten resultaat. Het is ook de enige versie zonder installatiestap.
Fixes, en eentje die niet bestaat
Twee van de vijf laten al zien hoe goed eruit ziet. MobA streamt schermafbeeldingen via exec-out en heeft nooit een apparaatbestand om mee te racen. Open-AutoGLM geeft argumenten door als lijsten in plaats van strings aaneen te schakelen, en is de enige van de vijf die immuun is voor injectie van hostopdrachten.
Geen van beide projecten heeft beide gelijk. Voor geen van de onderstaande oplossingen is het aanraken van het model vereist:
- Shell laten vallen=Waar. Geef argv-lijsten door, zodat metatekens letterlijk blijven.
- Stream schermafbeeldingen in plaats van schrijven en vervolgens trekken. Geen bestand aan de apparaatzijde, geen TOCTOU-venster.
- Zet een machtiging op handtekeningniveau op de invoeruitzending of gebruik expliciete intenties.
- Verschil de activiteit op de voorgrond voor en na elke actie, en houd per taak een toelatingslijst voor pakketten bij.
- Voer contrastverbetering uit op schermafbeeldingen voordat het model ze ziet. Gedeeltelijk, geen oplossing.
De voor de hand liggende verdediging is een bevestigingsprompt voor gevoelige acties, en Open-AutoGLM verzendt er één. Het wordt geactiveerd wanneer het model besluit dat een actie gevoelig is. De perceptieaanvallen herschrijven dat oordeel, en daarom beoordeelt de krant de prompt als onvoldoende tegen subliminale injectie, UI-spoofing en geknoei met screenshots.
Tegen de uitzending en het toegankelijkheidssnuffelen doet het helemaal niets, omdat er geen actie is om te bevestigen. De tekst is al verdwenen. Over de hoek- en uitgesneden injectie zijn de onderzoekers bot: “Er bestaat geen eenvoudige en effectieve softwaregebaseerde oplossing.” Het maskeren van hoeken is een oplossing voor een hardwarefeit.
Nergens om het te melden
Achter de stilte zit een structuur. Zhang zei dat het team naar een privé-e-mail ging omdat de projecten geen speciaal kanaal hebben voor het melden van kwetsbaarheden, en The Hacker News geen beveiligingsbeleid vond dat door een van de vijf repositories was gepubliceerd.
Het artikel voegt eraan toe dat Tencent en Alibaba als eerste zijn benaderd, en dat open-sourceprojecten van onderzoekskwaliteit buiten het gebruikelijke bereik van het Security Response Center vallen.
Vergelijk dat eens met de publicatie van Microsoft in mei over Semantic Kernel, het agentframework, waar hetzelfde patroon van modeluitvoer een shell bereikte, CVE-2026-25592, CVE-2026-26030 en een gepatchte release opleverde. De éénregelige versie van Microsoft wordt hier zonder wijzigingen overgedragen: “uw LLM is geen beveiligingsgrens.”
De overlay-helft is geen nieuw terrein. Wu et al. zorgde in mei 2025 voor een snelle injectie via overlay-vensters tegen AppAgent en Mobile-Agent, en Ding et al. gevolgd in oktober met aanwijzingen die alleen verschijnen terwijl een agent kijkt.
De sectie over gerelateerd werk in dit artikel citeert geen van beide en slaat de literatuur over de beveiliging van mobiele agenten geheel over. Wat het toevoegt is het uiteinde van de keten: van het scherm, via het bestand, naar de host.
Waarmee het lastige gedeelte overblijft. Open-AutoGLM heeft meer dan 25.000 GitHub-sterren, en de README begeleidt u bij het inschakelen van USB-foutopsporing, het sideloaden van het toetsenbord en het doorgeven van uw invoer. Volg de documentatie nauwkeurig en u hebt alle randvoorwaarden gecreëerd die de gemeten aanvallen nodig hebben, behalve de kwaadaardige app zelf. De installatiehandleiding is de rest van het bedreigingsmodel.