Один GitHub Issue добрался до секретов CI у Claude Code и Gemini CLI

· Безопасность
Исследователи Novee Security показали на Black Hat USA, что заявка в багтрекере от аккаунта без прав в репозитории способна выполнить код на CI-раннерах собственных агентов Anthropic, Google и OpenAI.

cover.svg

Компания Novee Security продемонстрировала на конференции Black Hat USA 5 августа, что связка привычных инструментов автоматизации может обернуться полноценной цепочкой атаки. Атаку проводили против агентов каждого вендора именно в той конфигурации, которую поставщик отгружает по умолчанию. Отправной точкой служил обычный GitHub Issue, открытый учётной записью без каких-либо привилегий в репозитории.

Три агента, три исхода

У Google результат оказался самым тяжёлым. Уязвимость CVE-2026-12537 (CVSS 4: 10.0) — это инъекция OS-команд в запускателе контейнера, достижимая через подготовленный файл .gemini/.env. Она позволяла неавторизованному злоумышленнику выполнить код на хосте headless-платформы CI ещё до старта песочницы. Причём для этого не требовалось ни о чём «уговаривать» модель. Исправлено в Gemini CLI 0.39.1 и run-gemini-cli 0.1.22.

В Claude Code уязвимость CVE-2026-54316 превратила публичный счётчик загрузок Hugging Face в канал утечки: API-ключ вытекал по одному символу за раз. Затронуты все выпуски с 0.2.54 по 2.1.163, где брешь и закрыта. По словам Anthropic, для эксплуатации требовалось протащить недоверенный контент в контекст Claude Code. Anthropic оценивает проблему как «умеренную» (CVSS v4 6.0), тогда как NVD присвоил ей 9.1 по v3.1 — шкалы разные, поэтому цифры напрямую не сопоставимы.

У OpenAI не появилось ни патча версии, ни CVE: позиция компании в том, что песочница вела себя ровно так, как задокументировано.

Проблема — в «обвязке», а не в модели

Общий изъян, повторявшийся у всех троих, сидел не в самих моделях, а в harness — коде вокруг модели, который решает, что именно будет запущено. Как сформулировал ведущий инженер Novee Элад Мегед, «harness — это код между моделью и реальным миром». Механика везде схожа: одна часть системы помечала значение как безопасное, а другая позже действовала на его основе с большими полномочиями. Так, валидатор команд Claude Code корректно для bash убирал текст в одинарных кавычках до своих 23 проверок — и вредоносная нагрузка во флаге git push --receive-pack доходила до раннера нетронутой.

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

Эксплуатации «в дикой природе» не зафиксировано

По данным CISA, обе CVE в каталог активно эксплуатируемых не входят; The Hacker News подтвердил это 7 августа. При этом с 18 июня на GitHub существует публичный репозиторий, называющий себя лабораторией для воспроизведения бага в Claude Code. Рекомендация проста: обновить Gemini CLI до 0.39.1, run-gemini-cli до 0.1.22 и Claude Code до 2.1.163, после чего проверить все рабочие процессы, которые может запустить внешний пользователь.


Источник: The Hacker News

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.