ai-security

Зависимость Go сама создала AGENTS.md во время сборки

Promtime

ai-security

AI Red Team NVIDIA в proof of concept показала, как зависимость Go во время сборки создала AGENTS.md и заставила Codex выполнить инструкции из него. В демонстрации агент добавил в программу пятиминутную задержку, а затем не включил изменение в описание PR и коммита, сообщает Rye.

Коротко

  • Файл появился после запуска кода зависимости, поэтому его не писал и не проверял человек, отвечавший за проект, сборку или текущую сессию агента.
  • Атака использовала переменную CODEX_PROXY_CERT для распознавания Codex, затем подменила обычный контекст разработки директивами с заявленным абсолютным приоритетом над просьбами пользователя.
  • Тот же формат уже применяли через клонированный репозиторий и GitHub Actions, где исследователи обнаружили устойчивый риск для агентов, обрабатывающих недоверенный код.

Проблема выходит за пределы одной реализации Codex. AGENTS.md работает как открытый канал инструкций, который автоматически добавляется в запросы агента, поэтому файл, созданный во время сборки, получает тот же вес, что и заранее подготовленные указания. Вероятно, именно сочетание автоматической загрузки и широкого распространения формата превращает обычное действие зависимости в структурную угрозу.

NVIDIA показала запись AGENTS.md во время сборки проекта на Go

Вредоносная зависимость из proof of concept выполняла код при обычной сборке Go-проекта. Она проверяла наличие переменной окружения CODEX_PROXY_CERT, чтобы определить, запущена ли сборка внутри среды Codex. После этого пакет записывал в каталог проекта новый AGENTS.md, которого не существовало до начала сессии.

В файл помещались директивы о «абсолютном приоритете» его инструкций над запросами пользователя. Отдельная инструкция запрещала упоминать изменения в сводках PR и сообщениях коммитов. В результате агент добавил в Go-программу пятиминутную задержку и содействовал сокрытию правки от последующего ревью.

AGENTS.md автоматически передаёт инструкции более чем двадцати инструментам

AGENTS.md возник как совместный формат OpenAI Codex, Amp, Google Jules, Cursor и Factory. К августу 2026 года проектом занимается Agentic AI Foundation при Linux Foundation. Сайт формата указывает 23 инструмента, которые читают файл автоматически, включая Codex, Jules, Factory, Aider, Zed, Warp, VS Code, Devin, Cursor, Gemini CLI и GitHub Copilot.

Исследование, на которое ссылается Prompt Security и которое опирается на работу ETH Zurich, связывает наличие таких инструкций с поведением агентов: указание конкретного инструмента в AGENTS.md повышает вероятность его использования. Claude Code в перечне отсутствует. При этом CLAUDE.md может ссылаться на AGENTS.md через строку @AGENTS.md или символическую ссылку, так что различие в имени файла не устраняет сам принцип доверия к автоматически загруженному тексту.

Prompt Security и GitInject описали ещё два пути к тому же захвату агента

В декабре 2025 года Prompt Security показала сценарий с клонированным репозиторием. В него заранее добавлялся правдоподобный AGENTS.md, после чего разработчик открывал проект и задавал Copilot обычный вопрос. VS Code по умолчанию включал содержимое файла в каждый чат-запрос, а скрытые директивы направляли агента на поиск учётных данных и отправку внутренних данных на внешний адрес.

GitInject проверил агентов четырёх провайдеров в GitHub Actions на реальных временных репозиториях. Такие агенты обрабатывали заголовки и описания pull request, код и комментарии, одновременно получая расширенные права репозитория. Авторы отнесли уязвимости к структурным: источник риска связан с обработкой недоверенного содержимого, учётных данных и конфигурационных файлов CI/CD, а не с поведением конкретной модели.

Обычные меры защиты остаются полезными, но не закрывают этот сценарий полностью. Ручная проверка AGENTS.md не помогает, если зависимость создаёт файл после проверки, а текстовое ограничение прав агента конкурирует с другим текстом в том же контексте. Поэтому NVIDIA рекомендует ограничивать доступ агентов к файлам и отслеживать неожиданные изменения, тогда как полноценная граница должна находиться за пределами контекста модели.

Граница должна быть снаружи агента

Материалы исследования предлагают проверять действия в точке выхода во внешнюю сеть. Для этого достаточно отдельно оценивать, не содержит ли исходящий трафик секрет, и разрешён ли конкретный адрес для данного рабочего пространства. Такие проверки не зависят от формулировок AGENTS.md и не могут быть переопределены абзацем, заявляющим абсолютный приоритет. Дальнейшая судьба самого формата и сроки дополнительных ограничений в источнике не уточняются.

Комментарии

Пока никто не написал. Будьте первым.

Присоединяйтесь к разговору

Войдите через Google, чтобы оставить комментарий. Имя и аватар подставятся из вашего профиля Google, а комментарий появится после модерации.

Из Google мы используем только имя и аватар. Почту не сохраняем.