Вредоносный червь Shai-Hulud, ранее связывавшийся в основном с экосистемой npm, был зафиксирован в еще одном ключевом репозитории открытого ПО — Maven Central. Это свидетельствует о расширении кампании по атаке на цепочку поставок программного обеспечения и повышает риски для разработчиков, работающих как с JavaScript, так и с Java.
Обнаружение зараженного пакета в Maven Central
Специалисты компании Socket выявили в Maven Central пакет org.mvnpm:posthog-node:4.18.1, содержащий два характерных для Shai-Hulud компонента: загрузчик setup_bun.js и основной пейлоад bun_environment.js. Это те же самые файлы, которые использовались во второй волне атак червя в npm-экосистеме.
Исследователи отмечают, что в данном случае скомпрометирован не сам официальный Java-проект, а пакет, автоматически созданный с помощью процесса mvnpm, который пересобирает npm-пакеты в артефакты Maven. То есть вредоносный код «переехал» в Java-мир через механизм зеркалирования JavaScript-зависимостей.
Представители Maven Central уже заявили, что внедряют дополнительные меры для блокировки повторной упаковки уже известных скомпрометированных npm-компонентов, чтобы снизить риск дальнейшего распространения подобных артефактов.
Shai-Hulud v2: эволюция червя и цель — кража секретов
По данным исследователей, проект PostHog был скомпрометирован как в npm, так и в Maven, при этом во всех случаях использовался один и тот же пейлоад — Shai-Hulud версии 2. Новая версия червя стала заметно более скрытной и нацелена на кражу конфиденциальных данных разработчиков и DevOps-команд.
Отчеты компаний Wiz и других участников расследования показывают масштаб кампании: по состоянию на 24 ноября 2025 года более 25 000 репозиториев GitHub содержали украденные секреты, а каждые 30 минут появлялось около 1000 новых репозиториев с опубликованными данными.
Технический разбор: setup_bun.js и bun_environment.js
Эксперты Step Security установили, что вредонос состоит из двух ключевых файлов. setup_bun.js выступает в роли дроппера, маскируясь под установщик среды Bun. Основной пейлоад — это крупный файл bun_environment.js размером около 10 МБ, использующий сложные техники обфускации.
Код пейлоада содержит hex-кодированную строку с тысячами записей, отдельный цикл, предназначенный для усложнения анализа, и обфусцированную функцию, которая поочередно восстанавливает каждую строку кода. Такой подход затрудняет статический анализ и работу антивирусных и SCA-инструментов.
После успешного запуска Shai-Hulud выполняет многостадийную атаку, включая кражу секретов: токенов GitHub и npm, а также учетных данных AWS, Google Cloud и Microsoft Azure. Если вредоносу не удается выполнить четыре ключевых шага (пройти аутентификацию в GitHub, создать репозиторий, обнаружить токены GitHub и npm), он переходит к деструктивной фазе — перезаписывает содержимое домашнего каталога жертвы.
Эксплуатация GitHub Actions и масштаб утечки секретов
По данным Aikido Security, злоумышленники активно злоупотребляли некорректными настройками CI/CD-пайплайнов в GitHub Actions. В частности, использовались уязвимые сценарии с триггерами pull_request_target и workflow_run, что позволило атакующим получить доступ к защищенным токенам и выполнить произвольный код в чужих репозиториях.
Такие ошибки конфигурации привели к компрометации заметных open source-проектов, включая AsyncAPI, Postman и PostHog. Похищенные секреты затем автоматически публиковались в GitHub-репозитории с описанием «Sha1-Hulud: The Second Coming», что облегчало атакующим массовую агрегацию и дальнейшее злоупотребление этими данными.
По оценке GitGuardian, OX Security и Wiz, кампания привела к утечке сотен токенов GitHub и учетных данных облачных провайдеров. На GitHub было загружено более 5000 файлов с украденными секретами. Анализ 4645 репозиториев показал наличие 11 858 уникальных секретов, из которых 2298 оставались действительными и публично доступными на 24 ноября 2025 года.
Происходящее демонстрирует, насколько уязвима цепочка поставок ПО: компрометация одного популярного пакета или CI-конвейера создает каскадный риск для тысяч проектов, которые доверяют этим зависимостям и инфраструктуре.
Текущая волна атак Shai-Hulud подчеркивает необходимость комплексного подхода к безопасности разработки. Разработчикам и компаниям имеет смысл пересмотреть модели доверия к пакетным репозиториям и автозеркалам, включить строгую проверку зависимостей (SCA, блок-листы скомпрометированных артефактов), минимизировать привилегии GitHub Actions, отказаться от небезопасных триггеров без дополнительной валидации, а также внедрить регулярное сканирование секретов в репозиториях и логах CI. Чем раньше такие практики станут стандартом, тем ниже будет эффект от следующих волн атак на цепочку поставок ПО.