К содержанию
Новости

Исследователи описали атаку, при которой один AI-агент может скомпрометировать другого в GitHub-репозитории

Инфографика: 90 млн загрузок
Графика: hegai.media

Исследователи Pillar Security рассказали о сценарии «agent-to-agent» эксплуатации в репозитории google/adk-python, открытом Python-инструментарии для создания и развёртывания AI-агентов. По их данным, уязвимость позволяла через prompt injection заставить публичного AI-агента активировать другого агента с более высокими привилегиями и выполнять вредоносные действия в CI/CD-процессах.

Проблема была связана с взаимодействием двух классов автоматизированных агентов с разными уровнями доступа. Один запускался при создании pull request или issue и имел публичный интерфейс, второй использовался только мейнтейнерами. Как сообщает The Register, исследователи продемонстрировали, что текст, подготовленный атакующим, мог инициировать доверенный workflow и вызвать privileged-agent workflow с помощью команды @gemini-cli handoff.

Сценарий атаки строился вокруг двух pull request. Первый содержал настоящее исправление вместе с вредоносным кодом или зависимостью, второй использовался для prompt injection и запуска цепочки действий. Исследователь Дэн Лисичкин отметил, что итогом могла стать правдоподобная история ревью: создавалось впечатление, будто проверка и одобрение были автоматически выполнены AI-агентом.

Google уже исправила проблему в репозитории, но вознаграждение по bug bounty компания выплачивать не стала, посчитав атаку связанной с социальной инженерией. Также в Google подчеркнули, что эксплуатация не позволяла автоматически объединять вредоносные pull request без участия мейнтейнера.

Ключевые факты

  • google/adk-python, открытый Python-инструментарий с более чем 90 млн загрузок

  • Исследователь Pillar Security Дэн Лисичкин представит результаты на DEF CON AI Village 7 августа в 16:00 PDT

  • В описанном сценарии использовался GitHub-токен с правами pull-requests: write

  • Google сочла отчёт неподходящим для bug bounty, поскольку атака требовала действий мейнтейнера и элементов социальной инженерии

Вопросы и ответы

Как именно выглядела цепочка компрометации между AI-агентами в GitHub?

Атакующий создавал два pull request: один с реальным исправлением и вредоносным кодом или зависимостью, второй с prompt injection. Через команду @gemini-cli handoff публичный агент, реагирующий на PR и issue, мог активировать privileged-agent workflow с более высокими правами в CI/CD.

Какие права доступа были достаточны для описанного сценария атаки?

В демонстрации использовался GitHub-токен с разрешением pull-requests: write. Этого хватало, чтобы инициировать workflow и выстроить цепочку взаимодействия между агентами.

Почему Google не выплатила bug bounty за найденную проблему?

Компания посчитала сценарий неподходящим для программы вознаграждений, поскольку атака требовала действий мейнтейнера и включала элементы социальной инженерии. Google также заявила, что exploit не позволял автоматически смержить вредоносный pull request без участия человека.

Контекст по теме