Критическая уязвимость в цепочке поставок npm: обнаружена масштабная кампания Shai-Hulud 2.0

information security

Исследователи кибербезопасности из Wiz Research обнаружили продолжающуюся масштабную кампанию по компрометации цепочки поставок npm, получившую название SHA1-HULUD. Эта атака затронула популярные пакеты, используемые в таких платформах, как Zapier, ENS Domains, PostHog и Postman, с более чем 25 000 репозиториев, уже подвергшихся воздействию.

Описание

По данным мониторинга, каждые 30 минут к числу зараженных добавляется около 1 000 новых репозиториев. Это указывает на активное распространение угрозы. Кампания представляет собой новую вариацию ранее известного вредоносного программного обеспечения Shai-Hulud с измененной тактикой выполнения.

Ключевой особенностью новой волны атак стало выполнение вредоносного кода на этапе preinstall (предустановки). Такой подход значительно расширяет потенциальное воздействие как в средах сборки, так и во время выполнения приложений. Злоумышленники используют скомпрометированные учетные записи maintainer (поддерживающих разработчиков) для публикации троянизированных версий легитимных npm-пакетов.

Анализ полезной нагрузки  выявил два основных вектора атаки. Первый механизм работает как бэкдор для зараженных машин. Вредоносный код регистрирует инфицированную систему как автономный исполнитель с именем SHA1HULUD, затем добавляет workflow (рабочий процесс) discussion.yaml, который выполняется специально на автономных исполнителях. Это позволяет злоумышленникам в будущем выполнять произвольные команды на зараженных машинах через обсуждения в репозитории GitHub.

Вторая вредоносная нагрузка занимается эксфильтрацией секретов GitHub. Через workflow formatter_123456789.yml происходит сбор всех секретов, определенных в соответствующем разделе GitHub Secrets, с последующей их загрузкой как артефакта. После успешной эксфильтрации workflow и созданная ветка удаляются для сокрытия следов деятельности.

Исследователи Wiz Threat Research и Aikido подтвердили, что троянизированные npm-пакеты были загружены в реестр npm в период с 21 по 23 ноября 2025 года. После установки вредоносное программное обеспечение эксфильтрирует секреты разработчиков и CI/CD в репозитории GitHub с именами, отсылающими к Shai-Hulud.

Среди подтвержденных скомпрометированных пакетов значатся многочисленные версии @zapier/zapier-sdk, zapier-platform-core, zapier-platform-cli и других пакетов Zapier. Также подверглись атаке пакеты ENS Domains, включая @ensdomains/ens-validation, @ensdomains/content-hash и ethereum-ens. В список зараженных попали пакеты других издателей, такие как @posthog/agent, а также многочисленные пакеты под пространствами имен @trigo, @orbitgtbelgium и @louisle2.

Поведение кампании напоминает предыдущего червя Shai-Hulud, однако различия в структуре полезной нагрузки и логике распространения могут указывать на участие других Threat Actors (угрозных акторов). Атрибуция атаки в настоящее время не подтверждена. Специалисты Wiz наблюдали множественные среды, где эти пакеты были скачаны до их удаления из npm, что свидетельствует об активном воздействии.

GitHub в настоящее время удаляет созданные злоумышленниками репозитории, связанные с этой кампанией, однако атакующие продолжают создавать новые репозитории в рамках продолжающейся активности.

Эксперты по безопасности настоятельно рекомендуют немедленно начать расследование и устранение последствий для всех npm-ориентированных сред. Критически важно очистить кэш npm, удалить node_modules и перейти на известные чистые версии зависимостей. Также необходимо отозвать и заменить все скомпрометированные учетные данные, включая npm-токены, GitHub Personal Access Tokens, SSH-ключи и учетные данные облачных провайдеров.

Для предотвращения подобных инцидентов в будущем рекомендуется ограничить или отключить скрипты жизненного цикла в CI/CD, ограничить исходящий сетевой доступ из систем сборки только доверенными доменами, а также использовать краткосрочные скопированные токены автоматизации. Регулярный аудит сред GitHub и CI/CD на предмет несанкционированных workflow и подозрительных коммитов должен стать стандартной практикой для всех организаций, использующих npm-пакеты в своих процессах разработки.

Индикаторы компрометации

Пакет Версия
@zapier/zapier-sdk 0.15.5, 0.15.6, 0.15.7
zapier-platform-core 18.0.2, 18.0.3, 18.0.4
zapier-platform-cli 18.0.2, 18.0.3, 18.0.4
zapier-platform-schema 18.0.2, 18.0.3, 18.0.4
@zapier/mcp-integration 3.0.1, 3.0.2, 3.0.3
@zapier/secret-scrubber 1.1.3, 1.1.4, 1.1.5
@zapier/ai-actions-react 0.1.12, 0.1.13, 0.1.14
@zapier/stubtree 0.1.2, 0.1.3, 0.1.4
zapier-scripts 7.8.3, 7.8.4
@ensdomains/ens-validation 0.1.1
@ensdomains/content-hash 3.0.1
ethereum-ens 0.8.1
@ensdomains/react-ens-address 0.0.32
@ensdomains/ens-contracts 1.6.1
@ensdomains/ensjs 4.0.3
@ensdomains/dnssecoraclejs 0.2.9
@ensdomains/address-encoder 0.1.5
@posthog/agent 1.24.1
@trigo/* Множество пакетов (различные версии)
@orbitgtbelgium/* Множество пакетов (различные версии)
@louisle2/* Множество пакетов (различные версии)
Дополнительные пакеты typeorm-orbit, orbit-nebula-draw-tools, atrix-mongoose, orbit-boxicons, orbit-soap, redux-forge, etc.
Комментарии: 0