Популярные GitHub Actions actions-cool/issues-helper и actions-cool/maintain-one-comment скомпрометированы через атаку на цепочку поставок: все существующие теги в репозиториях были перенаправлены на вредоносные коммиты, которые извлекают учётные данные из CI/CD-конвейеров и отправляют их на сервер злоумышленников. Любой рабочий процесс GitHub Actions, ссылающийся на эти действия по версии (тегу), при следующем запуске загрузит вредоносный код. Единственный способ защиты — привязка к полному SHA-хешу заведомо безопасного коммита.
Механизм атаки: imposter-коммиты
По данным исследователя Варуна Шармы из StepSecurity, атака реализована через технику imposter-коммитов — метод компрометации цепочки поставок, при котором вредоносный код внедряется путём ссылки на коммит или тег, существующий только в форке, контролируемом злоумышленником, а не в оригинальном доверенном репозитории. Такой подход позволяет обойти стандартные проверки через Pull Request и добиться выполнения произвольного кода.
Как сообщает StepSecurity, каждый существующий тег в репозитории actions-cool/issues-helper был перемещён так, чтобы указывать на подставной коммит, который не фигурирует в обычной истории коммитов действия. Это означает, что вредоносный код становится невидимым при стандартном просмотре истории репозитория.
Цепочка выполнения вредоносного кода
При запуске в среде GitHub Actions Runner вредоносный коммит выполняет следующую последовательность действий:
- Загружает среду выполнения JavaScript Bun на раннер
- Считывает память процесса Runner.Worker для извлечения учётных данных
- Выполняет исходящий HTTPS-запрос к домену, контролируемому злоумышленником, для передачи похищенных данных
Чтение памяти процесса Runner.Worker — особенно опасный вектор, поскольку этот процесс содержит секреты, токены доступа и другие учётные данные, используемые в CI/CD-конвейере. Компрометация этих данных может открыть злоумышленникам доступ к репозиториям, облачным средам и другим ресурсам, связанным с рабочими процессами.
Масштаб компрометации
По данным исследователей, помимо actions-cool/issues-helper, 15 тегов второго GitHub Action — actions-cool/maintain-one-comment — также были скомпрометированы с аналогичной функциональностью. GitHub заблокировал доступ к репозиторию actions-cool/maintain-one-comment, указав на нарушение условий использования платформы. Конкретные причины этого решения не раскрываются.
Поскольку все теги теперь указывают на вредоносные коммиты, под угрозой находится каждый рабочий процесс, который ссылается на эти действия по версии — например, через конструкции вида actions-cool/issues-helper@v3 или actions-cool/issues-helper@latest. При следующем запуске такой рабочий процесс автоматически загрузит и выполнит вредоносный код.
Индикаторы компрометации
Домен эксфильтрации данных, зафиксированный в ходе анализа:
- t.m-kosche[.]com — домен, на который отправляются похищенные учётные данные
Организациям рекомендуется проверить сетевые журналы на наличие обращений к этому домену из среды CI/CD.
Оценка воздействия
Данная атака представляет высокую степень опасности для организаций, использующих затронутые GitHub Actions в своих CI/CD-конвейерах. Компрометация учётных данных раннера может привести к каскадным последствиям: несанкционированному доступу к приватным репозиториям, облачной инфраструктуре, реестрам контейнеров и другим ресурсам, секреты которых передаются через GitHub Actions.
Особенно уязвимы проекты с открытым исходным кодом и организации, которые не применяют практику привязки зависимостей к конкретным SHA-хешам коммитов. Широкое распространение GitHub Actions как платформы автоматизации делает подобные атаки на цепочку поставок потенциально масштабными.
Рекомендации по реагированию
- Немедленно прекратите использование actions-cool/issues-helper и actions-cool/maintain-one-comment во всех рабочих процессах
- Проведите аудит журналов CI/CD-раннеров на предмет исходящих соединений к домену t.m-kosche[.]com
- Ротируйте все секреты, которые были доступны в рабочих процессах, использовавших скомпрометированные действия: токены GitHub, ключи API, учётные данные облачных провайдеров
- Перейдите на привязку к полным SHA-хешам коммитов для всех сторонних GitHub Actions вместо ссылок по тегам или веткам — это единственный надёжный способ защиты от подобных атак
- Внедрите мониторинг сетевой активности раннеров для обнаружения аномальных исходящих соединений из среды CI/CD
Этот инцидент наглядно демонстрирует фундаментальную проблему модели доверия GitHub Actions: мутабельные теги не гарантируют целостность кода. Каждая организация, использующая сторонние GitHub Actions, должна провести аудит своих рабочих процессов и перевести все ссылки на внешние действия с тегов на полные SHA-хеши коммитов. Для уже затронутых — приоритетом является немедленная ротация всех секретов, которые могли быть доступны скомпрометированным раннерам.