Исследователи показали класс атак Comment and Control: злоумышленник внедряет вредоносные инструкции в PR/issue‑контент, а ИИ‑агент в GitHub Actions сам выполняет команды и «выносит» секреты через логи и комментарии. Под ударом оказались сразу несколько популярных агентных инструментов — от Claude Code Security Review до Copilot Agent.
ИИ‑агенты всё чаще живут прямо внутри процесса разработки: проверяют PR, комментируют код, создают патчи и запускаются в GitHub Actions. Но у этой удобной схемы есть неприятная обратная сторона: если агент читает контент, который может писать внешний участник, то этот контент может превратиться в команду.
Исследователь Aonan Guan (при участии исследователей из Johns Hopkins University) описал атаку, которую назвал Comment and Control. Суть в том, что злоумышленник подмешивает вредоносные инструкции в данные GitHub (заголовок PR, комментарии, тело issue), а агент, работающий в CI, воспринимает их как часть контекста задачи и начинает действовать в интересах атакующего.
Что именно нашли
Comment and Control — это разновидность prompt‑injection, но с важной особенностью: в ряде сценариев агент запускается автоматически по событиям GitHub (например, при создании PR или комментария). То есть атака может сработать без «дополнительного шага» со стороны жертвы — достаточно, чтобы workflow был настроен так, что агент получает доступ к инструментам и секретам.
Какие инструменты оказались уязвимы
- Anthropic Claude Code Security Review — показано, что специально сформированный заголовок pull request может подтолкнуть агента к выполнению произвольных команд и извлечению чувствительных данных. Вывод может оказаться в отчёте «по безопасности» или в логах GitHub Actions.
- Google Gemini CLI Action — сценарий строился вокруг контента issue и комментариев: исследователи демонстрировали обход защитных ограничений и получение полного API‑ключа.
- GitHub Copilot Agent — в одном из вариантов вредоносная нагрузка пряталась в HTML‑комментарии (то есть визуально «не видна» в обычном просмотре), но остаётся доступной для обработки агентом. Также описывались техники, позволяющие вытаскивать секреты и обходить часть фильтрации/ограничений.
Отдельная деталь: для сценария с Copilot Agent, как отмечалось в описании, требуется ручное действие — назначение issue агенту. Но именно скрытый payload усложняет понимание того, что происходит, для человека.
Почему это опасно для обычных репозиториев
Проблема не в «хитром взломе» GitHub как платформы. Конфликт более фундаментальный: агент должен читать то, что пишут в PR и issues, чтобы помогать команде, и одновременно ему часто дают:
- доступ к инструментам (выполнение команд, действия с репозиторием, API‑вызовы);
- секреты (токены, ключи, служебные креды), без которых автоматизация не работает.
Если эти две вещи оказываются в одном «контуре», то внешнему участнику достаточно заставить агента сделать то, что он и так умеет: прочитать контекст, выполнить действие и куда‑то записать результат. А «куда‑то» в CI почти всегда есть: логи, комментарии, отчёты, результаты проверки.
Что сделали вендоры
Сообщается, что уязвимости были раскрыты ответственным образом и подтверждены компаниями. Anthropic, в частности, классифицировала проблему как критическую и внедрила меры снижения риска, также упоминалась выплата вознаграждения. Google и GitHub тоже подтвердили получение отчётов и выдавали вознаграждения; при этом GitHub, по описанию, рассматривала часть проблемы как архитектурное ограничение класса систем.
Что можно проверить у себя прямо сейчас
- Не выдавайте секреты workflow’ам, которые запускаются на данных от непроверенных внешних участников (особенно если используется конфигурация, открывающая доступ к secrets на событиях из форков).
- Разделяйте контуры: задачи, которые читают непроверенный контент (PR/issue), по возможности выполняйте без доступа к «боевым» ключам.
- Минимизируйте права токенов (и срок жизни), используйте принцип least privilege для CI‑кредов.
- Включайте ручные «гейты» для действий, которые могут публиковать результаты наружу (комментарии/артефакты/логи), если агент работает с потенциально недоверенным вводом.
- Следите за аномалиями: неожиданные «находки» в security‑отчётах, странные команды в логах, нетипичные попытки агента перечислять переменные окружения и т.п.
Эта история хорошо иллюстрирует новый класс рисков: когда CI превращается в «исполнителя» не только ваших задач, но и чужих инструкций, аккуратно спрятанных в обычных для разработки местах — заголовках PR и комментариях.
