Shai-Hulud атакует npm: заражение CI, GitHub и OIDC
11 мая 2026 года новая волна кампании червя Shai-Hulud нацелилась на экосистему npm, затронув, в частности, дерево зависимостей TanStack. По данным отчета, атака использовала технику отравления кэша continuous integration (CI) и эксплуатацию конечной точки публикации npm на основе OpenID Connect (OIDC). Вскоре после этого вредоносная активность вышла далеко за пределы исходной цели и затронула несколько пакетов npm, связанных с Mistral AI, UiPath и OpenSearch.
Особую обеспокоенность исследователей вызвал тот факт, что связанный с червем вредоносный код быстро стал общедоступным в новых репозиториях GitHub. Это создало риск повторного использования и адаптации атакующих техник другими злоумышленниками, усиливая угрозу для всей цепочки поставок программного обеспечения.
Кому приписывают атаку
Злоумышленная деятельность, по оценке авторов отчета, приписывается группе TeamPCP, ранее связанной с рядом инцидентов безопасности, включая инцидент с Trivy в марте 2026 года. Кампания демонстрирует высокий уровень подготовки: злоумышленники комбинировали ошибки конфигурации в рабочих процессах pull request в GitHub Actions с доступом на запись к кэшу CI репозитория.
Именно такой доступ позволил им внедрять вредоносные изменения в инфраструктуру сборки и распространения пакетов. В результате атака стала не только вопросом компрометации отдельных проектов, но и примером того, насколько опасными могут быть слабые места в автоматизированных процессах разработки.
Как работает Shai-Hulud
Червь Shai-Hulud действует по набору структурированных фаз, каждая из которых выполняет собственную задачу — от первичной проверки окружения до закрепления и эксфильтрации данных.
- preflight — проверка контекста выполнения, в том числе поиск конкретных пакетов, таких как opensearch-js, внедрение backdoor и попытки кражи учетных данных.
- Проверка языковой настройки системы: вредонос завершает работу, если установлена русская локаль.
- Fast wins — активный сбор учетных данных из известных мест хранения и запуск команд, способных раскрыть конфиденциальную информацию.
- Установка каналов управления C2: сначала через прямой контакт с основным сервером, а при неудаче — путем создания новых репозиториев GitHub для эксфильтрации данных.
Отдельно отчет отмечает фокус ВПО на сборе учетных записей в средах AWS и Kubernetes. Червь перебирает различные secret и configuration-файлы, а также ищет Bitcoin-wallets, в частности файлы wallet.dat.
Закрепление в среде разработки
Одна из наиболее примечательных особенностей кампании — способность вредоносного кода закрепляться в разнообразных средах разработки. В частности, он распространяется на:
- Claude Code session hooks;
- VS Code task automation;
- другие механизмы, связанные с инструментами разработчика.
Такой подход позволяет червю сохраняться даже после выполнения команды npm uninstall. Иными словами, удаление пакета не обязательно приводит к удалению всех следов компрометации, если злоумышленник успел внедриться в связанные с ним процессы и автоматизацию.
Механизм распространения и «dead man’s switch»
Механизм распространения Shai-Hulud также выглядит нетривиально. Червь пытается распространяться, вставляя вредоносные файлы в несколько веток GitHub, особенно в папках, связанных с AI tools. Это позволяет ему использовать доверенные процессы разработки как канал дальнейшего заражения.
Отличительной особенностью ВПО является dead man’s switch: механизм, который каждую минуту проверяет ротацию токенов и удаляет определенные файлы из системы при обнаружении таких изменений. Такой элемент повышает устойчивость вредоносной логики и затрудняет анализ инцидента после срабатывания защитных мер.
Почему это важно для цепочки поставок
Авторы отчета подчеркивают, что текущая волна Shai-Hulud демонстрирует расширенный и хорошо организованный подход TeamPCP к краже учетных данных. Особенно тревожным фактором остается ориентация на рабочие процессы разработчиков и инфраструктуру CI/CD, где компрометация одного звена может привести к заражению множества зависимых проектов.
Публичный выпуск кода червя дополнительно усугубляет ситуацию. Он открывает возможность для других злоумышленников перенимать, дорабатывать и модифицировать использованные техники, что повышает риск новых атак в средах software supply chain.
Эта уязвимость позволяет другим злоумышленникам потенциально перенимать и модифицировать эти тактики для дальнейшей злонамеренной деятельности.
В результате кампания Shai-Hulud становится не просто очередным инцидентом в экосистеме npm, а показательной атакой на доверие к современным процессам разработки, автоматизации и публикации пакетов.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.


