Пять open-source фреймворков, на которых строят Android AI-агенты, оказались уязвимы к цепочке атак с неприятным финалом: приложение на смартфоне может незаметно подсунуть модели команду, а затем добиться выполнения кода уже на хостовом ПК. Для разработчиков агентных интерфейсов это плохая новость: граница между «автоматизируем телефон» и «открыли дыру на рабочей машине» оказалась куда тоньше, чем хотелось бы.
Об этом сообщает The Hacker News со ссылкой на исследование авторов из Simon Fraser University, Chinese University of Hong Kong, Shandong University и Xingtu Lab компании QAX. В работе разбираются пять проектов: AppAgent, AppAgentX, Mobile-Agent-v3, Open-AutoGLM и MobA. По данным исследователей, каждый из них оказался уязвим как минимум к шести из семи показанных техник. Препринт появился на arXiv 1 июля 2026 года и был обновлен 14 июля. Признаков атак вне лаборатории авторы не нашли, CVE на эти проблемы тоже пока нет.
Самая показательная цепочка выглядит почти буднично. Агент делает скриншот экрана Android-устройства, прогоняет его через vision-модель, получает текстовую инструкцию и дальше через ADB выполняет действие на телефоне. Если в этом месте разработчик небрежно склеил shell-команду, инструкция со скриншота превращается в команду уже для Windows-машины, с которой управляют устройством. В AppAgent, как отмечают авторы, контроллер вызывал subprocess.run(adb_command, shell=True) и подставлял текст напрямую в конструкцию вида adb shell input text {input_str}. В актуальном коде есть косметическая фильтрация пробелов и одиночных кавычек, но этого мало: символы вроде ;, & и > остаются. В итоге строка, которую модель «прочитала» с экрана и решила ввести, может быть интерпретирована уже хостовой оболочкой как две разные команды.
Демонстрация получилась предельно прикладной. Полезная нагрузка для запуска calc.exe сработала в 20 из 20 попыток против AppAgent, AppAgentX, Mobile-Agent-v3 и MobA. В отдельном end-to-end сценарии против AppAgent строка test;pwd>rce_success записала рабочую директорию хоста в файл, то есть исследователи не просто показали теоретическую брешь, а добились реального исполнения на стороне оператора. Здесь важно не только наличие уязвимости, но и то, насколько легко она вписывается в привычную архитектуру open-source агентных фреймворков, где ADB до сих пор используется как дешевая «шина управления» между моделью и телефоном.
Невидимый текст, гонка файлов и фальшивые экраны
Чтобы довести атаку до срабатывания, злоумышленнику нужно сначала показать модели нужную строку. Исследователи описывают несколько способов. Первый основан на гонке файлов: агент сохраняет скриншот на устройство, а потом через небольшой интервал забирает его на ПК. Этого окна хватает, чтобы вредоносное приложение перехватило файл, подменило картинку и вернуло ее на место. У Open-AutoGLM используется схема screencap -p /sdcard/tmp.png с отдельным adb pull. Mobile-Agent-v3 пишет в фиксированный /sdcard/screenshot.png и делает паузу примерно на полсекунды. AppAgentX использует имена с таймстампом и счетчиком шагов, но за таким шаблоном тоже можно следить. В AppAgent конфиг по умолчанию вообще оставляет директорию скриншотов в /sdcard. Авторы измерили окно между записью и чтением в пределах от 50 до 500 мс, среднее значение составило около 210 мс по 100 прогонам. Для фонового сервиса, который опрашивает файловую систему каждые 5–10 мс, этого более чем достаточно.
Результаты у таких атак почти неприлично высокие: подмена скриншотов дала от 19 из 20 до 20 из 20 успешных попыток на четырех из пяти фреймворков. Чтобы расширить окно еще сильнее, исследователи показали агенту невидимый оверлей с сообщением о якобы идущей сетевой синхронизации и просьбой подождать три секунды. Модель поверила. Еще один неприятный штрих: все шесть vision-моделей в эксперименте считывали текст с непрозрачностью 2% как минимум в 18 из 20 случаев. GPT-4o, Claude Opus 4.5, Gemini 3 Pro и GLM-4V показали 20 из 20. Для человека такой текст при обычном просмотре, по оценке авторов, ниже типичного порога восприятия. Для модели, которая получает уже готовый скриншот, этот барьер не работает.
Есть и более экзотичный вариант, завязанный на железо. У смартфонов бывают скругленные углы и вырезы под камеру, но буфер кадра остается прямоугольным. Значит, часть пикселей можно отрисовать в зоне, скрытой под рамкой или вырезом: пользователь их не увидит, а в скриншот они попадут. На Pixel 4 исследователи насчитали около 78 пикселей скрытой ширины в одном из углов, чего хватило для короткой команды. Все пять фреймворков прочитали такую полезную нагрузку. А если скрытность вообще не нужна, можно сделать грубее: сервис доступности выводит поверх легитимного приложения поддельный экран логина, и агент послушно вводит в него учетные данные. Люди обычно хотя бы настораживаются, увидев внезапное окно пароля. В экспериментах агенты не насторожились ни разу: 100 успешных срабатываний из 100.
Проблема не в модели, а в обвязке
Отдельный пласт уязвимостей связан с каналом ввода. У мобильных агентов нет «родного» безопасного интерфейса для набора текста на телефоне, поэтому разработчики переиспользуют отладочные механизмы. Open-AutoGLM, например, кодирует ввод в base64 и отправляет его через неявный broadcast ADB_INPUT_B64, который подхватывает ADB Keyboard — инструмент для тестовой автоматизации. Сам по себе он делает ровно то, что обещает в документации. Проблема в том, что агентные фреймворки превратили тестовый хук в продакшен-канал ввода. В Mobile-Agent-v3 более узкая логика: ASCII-символы идут через adb shell input text, а все не-ASCII — по одному через broadcast ADB_INPUT_TEXT. В MobA достаточно одного эмодзи или буквы с диакритикой, чтобы вся строка ушла через broadcast целиком. Любое приложение, подписавшееся на тот же action, получает этот текст без дополнительных разрешений и без видимого сигнала для пользователя. А если у злоумышленника есть доступность, события TYPE_VIEW_TEXT_CHANGED отдают тот же текст открытым видом, включая пароли, против всех пяти фреймворков.
Хорошая новость только в том, что для большинства сценариев нужны реальные предусловия: вредоносное приложение уже должно стоять на устройстве, агент должен быть активен, а USB- или wireless-debugging включен. Речь не о штатных ассистентах в массовых смартфонах: Bixby, XiaoAi и iOS-экосистема в исследование не входили. Плохая новость в другом. По словам первого автора Зидона Чжана, часть атак требует минимальных Android-разрешений, а одна не требует их вовсе. То есть порог для мотивированного злоумышленника не такой уж высокий. Более того, исследователи описали вариант вообще без установки приложения: вредоносная инструкция может быть спрятана в хроминансных каналах изображения, которое пользователь открывает в мессенджере, а агент позже сам извлекает ее через скриншот. Это пока не основной измеренный результат, а расширение идеи, но логика вполне понятна.
Практические выводы для разработчиков здесь довольно приземленные. Не использовать shell=True там, где агентная модель влияет на строку команды. Передавать аргументы списком, а не собирать shell-строки вручную. Не писать скриншоты на устройство, если можно стримить их через exec-out. Не использовать широковещательные интенты как канал ввода без signature-level permission или хотя бы явных intent'ов. Проверять, какое приложение в фокусе до и после действия агента, и вести allowlist пакетов на задачу. Отдельно авторы предлагают прогонять скриншоты через усиление контраста, но сами же признают: это лишь частичная мера, а не полноценная защита. С подтверждением чувствительных действий ситуация тоже не спасает: если модель уже обманули на этапе восприятия, она просто не распознает действие как чувствительное и ничего у пользователя не спросит.
Самая неприятная деталь во всей истории даже не в процентах успешности, а в устройстве экосистемы. Уязвимости сидят не в «магии ИИ», а в дешевой инженерной обвязке вокруг него: shell-вызовы, временные файлы, отладочные broadcast'ы, сервисы доступности и криво собранные каналы управления. Пока Android AI-агенты остаются лабораторно-опенсорсным полем экспериментов, это выглядит как предупреждение. Если такие механики начнут массово попадать в корпоративные мобильные ассистенты, MDM-сценарии и инструменты автоматизации для саппорта, вопрос будет уже не в том, умеет ли агент нажимать кнопки, а в том, кто на самом деле управляет агентом. Подробности исследования можно сверить в публикации .