Примерно 19 марта 2026 года, спустя четыре дня после взлома сканера уязвимостей Trivy от Aqua Security, исследователи из Sysdig и Wiz обнаружили, что облачная киберпреступная группировка TeamPCP добралась до рабочих процессов GitHub Actions компании Checkmarx. Checkmarx занимается безопасностью цепочек поставок программного обеспечения, что придаёт взлому особую иронию.

Механика атаки оказалась каскадной. TeamPCP воспользовались учётными данными, украденными ещё во время компрометации Trivy (инцидент получил идентификатор CVE-2026-33634 с критическим баллом CVSS 9.4). Конкретно был скомпрометирован сервисный аккаунт
Исследователи Рами Маккарти, Джеймс Хогом и Бенджамин Рид из компании Wiz выяснили, что атака затронула и расширения на платформе Open VSX. Были троянизированы расширения
Вредонос, который исследователи назвали «TeamPCP Cloud Stealer», доставлялся через скрипт
Украденные данные отправлялись на домен
На случай если связь с сервером оборвётся, вредонос предусматривал запасной механизм. Используя переменную
На системах, не связанных с CI (то есть обычных рабочих станциях или серверах), скрипт закреплялся через systemd user service. Далее он опрашивал адрес
Checkmarx заявила, что ей «неизвестно о каком-либо воздействии на данные клиентов или production-окружения». Компания идентифицировала проблему и выпустила новые версии затронутых расширений VS Code, рекомендовав клиентам продолжать стандартные процедуры реагирования на инциденты, усилить мониторинг и проверить среды разработки и сборки.
Рекомендации по обнаружению и защите достаточно конкретны. Стоит проверить логи GitHub Actions раннеров на упоминания
У TeamPCP есть и другая активность помимо атак на цепочки поставок. Группировка нацеливается на кластеры Kubernetes, используя вредоносный shell-скрипт, который полностью вайпит машины. Триггером служит обнаружение систем, настроенных на иранский часовой пояс и локаль. Зачем именно такой критерий — пока неясно, но это ещё один штрих к портрету группировки, действующей методично и с размахом.

Изображение носит иллюстративный характер
Механика атаки оказалась каскадной. TeamPCP воспользовались учётными данными, украденными ещё во время компрометации Trivy (инцидент получил идентификатор CVE-2026-33634 с критическим баллом CVSS 9.4). Конкретно был скомпрометирован сервисный аккаунт
cx-plugins-releases, через который злоумышленники получили доступ к двум GitHub Actions: checkmarx/ast-github-action и checkmarx/kics-github-action. Метод заражения — принудительная перезапись тегов (force-push) на вредоносные коммиты. Тег выглядит как прежний, но указывает уже на отравленный код. Исследователи Рами Маккарти, Джеймс Хогом и Бенджамин Рид из компании Wiz выяснили, что атака затронула и расширения на платформе Open VSX. Были троянизированы расширения
ast-results (версия 2.53.0) и cx-dev-assist (версия 1.7.0). При этом версии тех же расширений в VS Code Marketplace остались чистыми — атакующие работали избирательно. Вредонос, который исследователи назвали «TeamPCP Cloud Stealer», доставлялся через скрипт
setup.sh, распаковывающий зашифрованный архив tpcp.tar.gz. Для запуска использовались различные менеджеры JavaScript-пакетов: npx, bunx, pnpx, yarn dlx. Список собираемых данных огромен: SSH-ключи, учётные данные Git, ключи Amazon Web Services, Google Cloud, Microsoft Azure, конфигурации Kubernetes и Docker, файлы .env, данные баз данных, VPN-конфигурации, настройки CI/CD-пайплайнов, криптовалютные кошельки, URL-адреса вебхуков Slack и Discord. Отдельно скрипт извлекал персональные токены доступа GitHub (PAT) прямо из памяти CI-раннера. Украденные данные отправлялись на домен
checkmarx[.]zone (IP-адрес 83.142.209[.]11, порт 443), а для расширений VSX использовался путь checkmarx[.]zone/vsx. Название домена — не случайность. Это целенаправленный тайпсквоттинг: в логах CI/CD-систем curl-запросы к такому адресу легко спутать с легитимным трафиком от самой Checkmarx. Хитрость простая, но в потоке тысяч строк лога она работает. На случай если связь с сервером оборвётся, вредонос предусматривал запасной механизм. Используя переменную
GITHUB_TOKEN жертвы, он создавал промежуточные репозитории для хранения украденных данных. В инциденте с Checkmarx такой репозиторий назывался docs-tpcp, в случае Trivy — tpcp-docs. На системах, не связанных с CI (то есть обычных рабочих станциях или серверах), скрипт закреплялся через systemd user service. Далее он опрашивал адрес
https://checkmarx[.]zone/raw каждые 50 минут, ожидая команд. Любопытная деталь: если ответ сервера содержал слово «youtube», скрипт немедленно прекращал работу. По состоянию на момент анализа эта ссылка вела на клип Queen «The Show Must Go On». То ли своеобразный kill switch, то ли чёрный юмор от авторов. Checkmarx заявила, что ей «неизвестно о каком-либо воздействии на данные клиентов или production-окружения». Компания идентифицировала проблему и выпустила новые версии затронутых расширений VS Code, рекомендовав клиентам продолжать стандартные процедуры реагирования на инциденты, усилить мониторинг и проверить среды разработки и сборки.
Рекомендации по обнаружению и защите достаточно конкретны. Стоит проверить логи GitHub Actions раннеров на упоминания
tpcp.tar.gz, scan.aquasecurity[.]org или checkmarx[.]zone. Нужно поискать в организациях GitHub репозитории с именами tpcp-docs и docs-tpcp. GitHub Actions необходимо привязывать к полным SHA-хешам коммитов, а не к тегам версий — теги можно перезаписать, хеши нет. Исходящие сетевые соединения с CI-раннеров нужно мониторить на предмет обращений к подозрительным доменам. Доступ к Instance М⃰data Service (IMDS) из контейнеров CI-раннеров лучше ограничить, перейдя на IMDSv2. У TeamPCP есть и другая активность помимо атак на цепочки поставок. Группировка нацеливается на кластеры Kubernetes, используя вредоносный shell-скрипт, который полностью вайпит машины. Триггером служит обнаружение систем, настроенных на иранский часовой пояс и локаль. Зачем именно такой критерий — пока неясно, но это ещё один штрих к портрету группировки, действующей методично и с размахом.