Одна GitHub-задача могла захватить Claude Code и заразить тысячи проектов

Одна GitHub-задача могла захватить Claude Code и заразить тысячи проектов

Исследователь безопасности Рётак из японской компании GMO Flatt Security нашёл уязвимость в официальном GitHub Action от Anthropic — инструменте, который встраивает Claude Code в рабочие процессы разработки. Атака начинается с обычной задачи (issue) в репозитории.

Схема простая: бот-аккаунт открывает задачу с телом, замаскированным под сообщение об ошибке. Когда Claude Code берётся за её разбор, он следует инструкциям внутри — читает переменные окружения процесса и публикует их обратно в задачу. Среди этих переменных — данные для получения OIDC-токена, который конвертируется в токен с полным доступом на запись к коду, задачам и воркфлоу репозитория.

Проблема крылась в проверке прав. Action автоматически доверял любому аккаунту с именем, заканчивающимся на [bot], считая, что GitHub Apps устанавливают только администраторы. Но зарегистрировать GitHub App может кто угодно — и использовать его токен для открытия задач в чужих публичных репозиториях.

Уязвимость была не теоретической. В феврале через похожую атаку на воркфлоу редактора Cline злоумышленники украли npm-токен и опубликовали вредоносный пакет. За восемь часов он был установлен на ~4 000 машин разработчиков.

Если бы атака была направлена на сам репозиторий claude-code-action от Anthropic, через него можно было «отравить» тысячи downstream-проектов, которые подтягивают этот Action.

Anthropic закрыла основную уязвимость за четыре дня после уведомления в январе. Патч вышел в версии v1.0.94. CVSS-оценка — 7.8, вознаграждение исследователю — $4 800.

Рётак говорит, что в общей сложности сообщил примерно о 50 способах обойти систему разрешений Claude Code. Prompt injection остаётся нерешённой проблемой: AI-агент с реальными инструментами и токенами делает ровно столько, сколько ему позволяют права — а права по умолчанию обычно гораздо шире, чем нужно.

Для защиты: обновить claude-code-action до v1.0.94, убрать из окружения лишние секреты, проверить воркфлоу с параметром allowed_non_write_users: "*".

Ирина Задорожная
Ирина Задорожная

Журналист с опытом работы в оффлайн-медиа и онлайн-изданиях. Пишу про искусственный интеллект, ИТ-системы и сервисы, про ИТ-бизнес уже 10 лет.