Pillar Security раскрыла метод атаки между агентами в комплекте разработки агентов Google для Python (Gemini Agent-to-Agent), который может привести к раскрытию секретной информации и манипуляции запросами на слияние (Pull Request).
В репозитории google/adk-python существовали два класса автоматизированных агентов ИИ: агенты с низкими привилегиями, открытые для взаимодействия с пользователями, и агенты с высокими привилегиями, доступные только сопровождающим проекта.
Злоумышленник может манипулировать агентом с низкими привилегиями, доступным для всех пользователей, чтобы тот передал запрос агенту с высокими привилегиями, получив доступ к ограниченным возможностям, включая выполнение команд, и потенциально открывая путь к компрометации цепочки поставок.
Первоначально Pillar Security обнаружила, что агент, ответственный за обработку запросов на слияние (pull requests), оставлял комментарии к этим запросам от имени соавтора, то есть обладал высокими привилегиями в репозитории.
Затем исследователи нашли способ заставить агента опубликовать комментарий к запросу на слияние с помощью команды @gemini-cli <prompt>, что запустило gemini-invoke и предоставило доступ к более привилегированному рабочему процессу.
Первоначальный запрос вызвал ответ от рабочего процесса gemini_invoke.yml, который раскрыл доступ привилегированного агента к инструментам через сервер MCP.
Бот имел доступ ко всем командам bash, а это означало, что исследователь мог удаленно выполнять код и потенциально извлекать токен GitHub агента.
Это позволяло ему изменять комментарии, запросы на слияние и проблемы других сопровождающих, соавторов и участников; отклонять проверки или одобрять изменения в запросах на слияние, а также применять команды gemini-invoke и gemini-review к любым запросам на слияние.
Кроме того, исследователи смогли исказить цикл утверждения запросов на слияние, но любой злонамеренный запрос на слияние должен был быть одобрен и объединен кем-либо из участников, что требовало применения методов социнженерии.
В рамках данной атаки злоумышленнику потребуется обеспечить доверие как соучастнику, а затем создать запрос на слияние (PR), содержащий вредоносный код, который будет помечен для проверки.
После этого злоумышленник сможет создать второй запрос на слияние, содержащий подсказки, которые укажут агенту пометить первый запрос на слияние как обработанный, проверенный и одобренный.
Google уведомили об обнаружении проблемы в начале июня, после чего разработчики устранили её путём усиления защиты, но не сочли достаточной для получения вознаграждения за обнаружение уязвимости, поскольку для интеграции вредоносного PR потребовалась социнженерия.
Вскоре после этого Pillar обнаружила еще одну уязвимость в репозитории ADK, в функциях автоматизации агента на основе Antigravity-SDK, которая могла привести к удаленному выполнению кода без участия разработчика. Google устранила эту уязвимость в конце июля.