Група дослідників із Simon Fraser University, Китайського університету Гонконгу, Шаньдунського університету та лабораторії Xingtu (QAX) опублікувала на arXiv роботу, що демонструє сім атак проти п’яти відкритих фреймворків мобільних AI-агентів: AppAgent, AppAgentX, Mobile-Agent-v3, Open-AutoGLM і MobA. Ланцюг атак починається з невидимого для людини тексту на екрані Android-пристрою й закінчується виконанням довільних команд на ПК, який керує агентом. Кожен із п’яти фреймворків виявився вразливим щонайменше до шести з семи продемонстрованих технік. За даними авторів, експлуатацію в реальних умовах не зафіксовано, а задіяне ПЗ — це інструментарій для розробників, що потребує увімкненого USB-налагодження та встановленого допоміжного застосунку.
Анатомія ланцюга: від пікселя до shell
Ключова проблема — відсутність межі безпеки між тим, що AI-модель «бачить» на скриншоті, і тим, що вона передає в системну оболонку хоста. Атака одночасно експлуатує три слабкі ланки: сприйняття моделі, файлову систему пристрою та механізм введення команд.
Невидимий текст, видимий для моделей
За даними дослідників, усі шість протестованих моделей комп’ютерного зору — включно з GPT-4o, Claude Opus 4.5, Gemini 3 Pro і GLM-4V — розпізнали текст із прозорістю 2% щонайменше у 18 із 20 спроб. Чотири з них показали результат 20/20. Людський зір за нормальних умов перегляду такого тексту не фіксує. Це створює асиметрію: шкідливий застосунок із правом відображення поверх інших вікон може розмістити інструкції, невидимі для користувача, але повністю читані агентом.
Апаратна версія цієї ж проблеми — заокруглені кути та вирізи під камеру. Фреймбуфер залишається прямокутним, і пікселі, приховані за рамкою, потрапляють на кожен скриншот. На Pixel 4, за даними роботи, це близько 78 пікселів завширшки в одному куті — достатньо для короткої команди. Усі п’ять агентів прочитали корисне навантаження з цих ділянок.
Гонка за скриншотом
Фреймворки зберігають скриншоти в загальнодоступне сховище пристрою перед їх завантаженням на хост. Open-AutoGLM записує файл за фіксованим шляхом /sdcard/tmp.png. Mobile-Agent-v3 використовує /sdcard/screenshot.png із півсекундною паузою між захопленням та отриманням. AppAgentX застосовує передбачувані імена з інкрементним лічильником. Конфігурація AppAgent типово вказує на /sdcard.
Дослідники виміряли вікно між записом і читанням файла: від 50 до 500 мс, у середньому близько 210 мс за 100 запусків. Фоновий сервіс, що опитує файл кожні 5–10 мс, встигає підмінити PNG до того, як агент його забере. Успішність підміни становила від 19/20 до 20/20 для чотирьох із п’яти фреймворків.
Від скриншота до виконання коду на хості
Найкритичніша ланка — контролер AppAgent, що викликає subprocess.run(adb_command, shell=True) і безпосередньо підставляє вивід моделі в конструкцію adb shell input text {input_str}. Код видаляє пробіли та одинарні лапки, але не фільтрує метасимволи оболонки: ;, &, >. Рядок, зчитаний моделлю з екрана, розбивається системною оболонкою хоста, і друга частина виконується на машині оператора.
За даними дослідників, корисне навантаження для запуску calc.exe спрацювало у 20 із 20 спроб проти AppAgent, AppAgentX, Mobile-Agent-v3 і MobA. Окремий тест із конструкцією test;pwd>rce_success записав робочий каталог хоста у файл.
Незахищений канал введення
Агенти використовують налагоджувальні механізми Android як основний канал взаємодії з пристроєм. Open-AutoGLM кодує текст у Base64 і надсилає через неявний broadcast ADB_INPUT_B64, призначений для ADB Keyboard — інструмента тестової автоматизації. Будь-який застосунок, що зареєстрував той самий action, отримує ті самі дані без жодних дозволів.
MobA перевіряє рядок через text.isascii(): одна не-ASCII літера в повідомленні змушує надіслати весь текст цілком через broadcast. Окрема атака через службу спеціальних можливостей дає змогу перехоплювати введений текст, зокрема паролі, через подію TYPE_VIEW_TEXT_CHANGED — за даними дослідників, це спрацювало проти всіх п’яти фреймворків.
Ще одна демонстрація: фальшива Activity авторизації, накладена поверх реального застосунку, зібрала облікові дані в усіх 100 тестових запусків. Жоден із п’яти агентів не розпізнав підміну.
Контекст: патерн повторюється
Описана модель атаки — вивід LLM, що потрапляє до системної оболонки, — уже отримала формальне визнання. Microsoft у травні 2026 року описала аналогічну проблему у своєму фреймворку Semantic Kernel, присвоївши їй ідентифікатори CVE-2026-25592 та CVE-2026-26030, і випустивши виправлення. Формулювання Microsoft — «ваша LLM не є межею безпеки» — без змін застосовне до мобільних агентів.
Попередні роботи Wu et al. (травень 2025) і Ding et al. (жовтень 2025) уже демонстрували ін’єкцію промптів через оверлеї проти AppAgent і Mobile-Agent. Нова робота розширює ланцюг до виходу за межі пристрою — на хост оператора.
Оцінка впливу
Безпосередній ризик обмежений кількома чинниками: йдеться про дослідницькі фреймворки з відкритим кодом, а не вбудованих асистентів (Samsung Bixby і Xiaomi XiaoAi були поза межами дослідження); атаки потребують увімкненого USB/бездротового налагодження та встановленого застосунку. Втім, один із варіантів атаки взагалі не потребує шкідливого застосунку — корисне навантаження може бути вбудоване в канали кольоровості зображення, яке жертва отримає в месенджері. Автори подають це як концептуальне розширення, а не як виміряний результат.
Open-AutoGLM має понад 25 000 зірок на GitHub, а його документація покроково проводить користувача через увімкнення USB-налагодження та встановлення клавіатури — створюючи всі передумови для описаних атак, окрім власне шкідливого застосунку.
Жоден із п’яти репозиторіїв, за наявними даними, не має опублікованої політики безпеки чи каналу для повідомлення про вразливості. Дослідники поінформували про проблеми електронною поштою до публікації препринта, але, за словами першого автора, відповіді не отримали. CVE для описаних проблем не присвоєно.
Рекомендації щодо усунення
Запропоновані заходи не потребують модифікації самих моделей:
- Відмова від
shell=True— передавання аргументів списком (argv), щоб метасимволи залишалися літералами. Open-AutoGLM уже реалізує цей підхід і, за даними дослідників, єдиний із п’яти стійкий до ін’єкції команд на хості. - Потокова передача скриншотів через
exec-outзамість запису на пристрій і подальшого вилучення. MobA вже застосовує цей метод, усуваючи вікно гонки. - Захист broadcast-каналів введення — застосування дозволів рівня підпису або явних intent замість неявних broadcast.
- Контроль Activity — порівняння foreground Activity до й після кожної дії, ведення списку дозволених пакетів для задачі.
- Підвищення контрастності скриншотів перед передаванням моделі — частковий захід проти невидимого тексту, не повноцінне рішення.
Для ін’єкції через апаратні області (кути, вирізи) автори прямо зазначають: «ефективного програмного рішення не існує». Маскування кутів — обхідний шлях навколо апаратного факту. Механізм підтвердження чутливих дій, реалізований в Open-AutoGLM, на думку дослідників, недостатній: атаки на сприйняття переписують саме судження моделі про чутливість.
Розробникам мобільних агентних фреймворків слід негайно усунути ін’єкцію команд через shell=True і перейти на потокову передачу скриншотів — ці дві міри закривають найкритичніші ланки ланцюга, від підміни файла до виконання коду на хості. Не менш важливо створити формальний канал для повідомлення про вразливості: відсутність security policy у репозиторіях із десятками тисяч зірок — системна проблема, що перетворює відповідальне розкриття на лист у порожнечу.