Мини-червь Шай-Хулуд
Злоумышленник, известный как TeamPCP, был замешан в сложной кампании атак на цепочки поставок, нацеленной на широко используемые пакеты npm и PyPI, связанные с TanStack, UiPath, Mistral AI, OpenSearch, Guardrails AI и рядом других экосистем. Эта операция, связанная с развивающейся кампанией вредоносного ПО Mini Shai-Hulud, демонстрирует значительную эскалацию злоупотреблений в цепочках поставок программного обеспечения и методов компрометации на основе личных данных.
Исследователи обнаружили, что вредоносные пакеты npm были модифицированы для включения обфусцированного компонента JavaScript под названием router_init.js. Эта полезная нагрузка анализирует зараженные среды и развертывает продвинутый инструмент для кражи учетных данных, нацеленный на облачных провайдеров, криптовалютные кошельки, инструменты разработки ИИ, платформы обмена сообщениями, системы CI/CD и среды GitHub Actions. Похищенные данные в основном передаются на домен filev2.getsession.org.
Использование инфраструктуры Session Protocol (STP) указывает на преднамеренную попытку обойти корпоративные средства защиты. Поскольку домен принадлежит децентрализованной платформе обмена сообщениями, ориентированной на конфиденциальность, вероятность его блокировки традиционными сетевыми средствами защиты ниже. В качестве вторичного метода эксфильтрации зашифрованные данные отправляются в контролируемые злоумышленниками репозитории через API GitHub GraphQL с использованием украденных токенов аутентификации GitHub под именем автора claude@users.noreply.github.com.
Оглавление
Механизмы сохранения активности и расширение возможностей кражи учетных данных
Вредоносная программа внедряет ряд механизмов обеспечения постоянного доступа и слежки, предназначенных для поддержания долговременного доступа к скомпрометированным средам разработки. Механизмы обеспечения постоянного доступа устанавливаются внутри Claude Code и Microsoft Visual Studio Code, позволяя вредоносной программе сохраняться после перезагрузки системы и автоматически перезапускаться при каждом открытии этих IDE.
Кроме того, развернута служба gh-token-monitor для непрерывного мониторинга и повторной кражи токенов GitHub. В скомпрометированные репозитории также внедрены два вредоносных рабочих процесса GitHub Actions. Эти рабочие процессы сериализуют секреты репозитория в формат JSON и загружают данные на внешний конечный пункт api.masscan.cloud.
Последний случай взлома TanStack существенно отличается от предыдущих инцидентов в цепочке поставок. Вместо использования механизма предварительной установки, злоумышленники внедрили вредоносный JavaScript-файл непосредственно в архивы пакетов, добавив при этом необязательную зависимость, связанную с пакетом, размещенным на GitHub. Эта зависимость содержит механизм подготовки жизненного цикла, который выполняет полезную нагрузку через среду выполнения Bun.
В троянизированных пакетах Mistral AI использовалась более старая стратегия заражения: файл package.json модифицировался с помощью хука preinstall, который запускает файл node setup.mjs. Этот процесс загружает Bun и запускает то же самое вредоносное ПО для кражи учетных данных.
CVE-2026-45321 и злоупотребление доверенными публикациями
Взлом TanStack официально зарегистрирован как CVE-2026-45321 и получил критическую оценку CVSS 9,6. Следователи подтвердили, что затронуты 42 пакета и 84 версии в экосистеме TanStack.
Анализ показал, что взлом произошел в результате цепочки атак на GitHub Actions, использующих триггер pull_request_target, отравление кэша GitHub Actions и извлечение токенов OIDC во время выполнения из исполнителей GitHub Actions. Сообщается, что злоумышленники внедряли вредоносные полезные нагрузки через осиротевшие коммиты в форках GitHub, прежде чем внедрять их в архивы npm-пакетов. Затем злоумышленники перехватывали легитимные рабочие процессы TanStack/router для публикации скомпрометированных пакетов с действительными аттестациями происхождения SLSA.
Это событие знаменует собой историческую эскалацию атак на цепочки поставок программного обеспечения. Вредоносные пакеты содержали действительные сигнатуры происхождения SLSA Build Level 3, что делает этот вирус первым задокументированным червем npm, способным распространять вредоносные пакеты с подлинными подтверждениями сборки. Впоследствии кампания по распространению вредоносного ПО вышла за пределы TanStack и распространилась на экосистемы, поддерживаемые UiPath, DraftLab и другими разработчиками.
Данная операция злоупотребляет доверенными рабочими процессами публикации. Вместо прямой кражи учетных данных npm, контролируемый злоумышленником код, работающий внутри доверенных конвейеров CI/CD, использовал разрешения OIDC для создания кратковременных токенов публикации в процессе сборки. Это позволило публиковать вредоносные пакеты через легитимные конвейеры выпуска, обходя традиционные средства аутентификации.
Самовоспроизводящееся поведение червей вызывает тревогу.
Одним из наиболее опасных аспектов кампании Mini Shai-Hulud является её червеобразная модель распространения. Вредоносная программа активно ищет доступные для публикации токены npm, настроенные с параметром bypass_2fa=true, перечисляет пакеты, поддерживаемые скомпрометированным разработчиком, и обменивает токены GitHub OIDC на токены публикации для каждого пакета. Этот механизм позволяет вредоносной программе распространяться по экосистемам пакетов, не прибегая к традиционным методам кражи учетных данных.
Атака также использовала уязвимости в настройках доверия на уровне репозитория внутри модели доверенных издателей OIDC GitHub. Поскольку доверие предоставлялось в целом на уровне репозитория, а не ограничивалось защищенными ветками и конкретными файлами рабочих процессов, вредоносные выполнения рабочих процессов, запускаемые "осиротевшими" коммитами, могли запрашивать легитимные токены публикации npm.
Еще одна тревожная возможность связана с использованием «аварийного выключателя». Вредоносная программа устанавливает скрипт оболочки, который каждые 60 секунд опрашивает конечную точку api.github.com/user, чтобы определить, остаются ли активными созданные злоумышленником токены npm. Эти токены содержат угрожающее описание: «Если вы отзовете этот токен, он очистит компьютер владельца».
Если специалисты по защите аннулируют токен через панель управления npm, вредоносная программа запускает деструктивную процедуру, выполняющую команду rm -rf ~/, фактически превращая заражение в вредоносное ПО типа «вайпер». Такое агрессивное поведение указывает на существенную эволюцию в оперативной тактике TeamPCP и демонстрирует растущую изощренность методов принудительного закрепления. Поэтому группам безопасности рекомендуется изолировать и создавать образы зараженных систем, прежде чем аннулировать скомпрометированные учетные данные npm.
Затронутые пакеты услуг и расширяющееся воздействие на экосистему
Кампания затронула более 170 пакетов в npm и PyPI, которые в совокупности были загружены более 518 миллионов раз. Следователи также выявили как минимум 400 репозиториев, созданных с использованием украденных учетных данных, во всех из которых содержится фраза «Shai-Hulud: Here We Go Again».
К числу затронутых пакетов относятся:
guardrails-ai@0.10.1 (PyPI)
mistralai@2.4.6 (PyPI)
@opensearch-project/opensearch@3.5.3, 3.6.2, 3.7.0, 3.8.0
@squawk/mcp@0.9.5
@squawk/weather@0.5.10
@squawk/flightplan@0.5.6
@tallyui/connector-medusa@1.0.1, 1.0.2, 1.0.3
@tallyui/connector-vendure@1.0.1, 1.0.2, 1.0.3
Вредоносная программа также использует множество избыточных каналов утечки данных. Помимо инфраструктуры протокола сессий и тайников GitHub, украденные учетные данные передаются через домен git-tanstack.com, созданный с помощью опечатки.
Вредоносная программа PyPI использует деструктивную логику с привязкой к географическим зонам.
Варианты вредоносного ПО на основе Python, связанные с вредоносными пакетами Mistral AI и Guardrails AI, существенно отличаются от полезных нагрузок на JavaScript, распространяемых через npm. Компрометированный пакет mistralai PyPI загружает программу для кражи учетных данных с удаленного хоста 83.142.209.194.
Исследователи обнаружили, что вредоносная программа на языке Python содержит логику, учитывающую страну, которая позволяет избежать выполнения в русскоязычных средах. Она также включает в себя механизм деструктивного воздействия с привязкой к географическому признаку, который вводит вероятность выполнения команды rm -rf / один к шести, если зараженная система находится в Израиле или Иране.
Такое поведение демонстрирует тревожную тенденцию к развитию деструктивного развертывания вредоносных программ с учетом региональных особенностей в экосистемах пакетов с открытым исходным кодом.
Растущая угроза атак на цепочки поставок с использованием идентификационных данных
Кампания Mini Shai-Hulud отражает более широкую трансформацию современных атак на цепочки поставок. Вместо того чтобы сосредотачиваться исключительно на компрометации пакетов, злоумышленники все чаще нацеливаются на доверенные идентификаторы CI/CD, рабочие процессы публикации и облачные автоматизированные конвейеры.
Как только злоумышленники получают доступ к инфраструктуре публикации программного обеспечения, сам конвейер разработки становится механизмом распространения вредоносного ПО. Поскольку многие вредоносные действия происходят через легитимные рабочие процессы, доверенные подтверждения и подлинные системы выпуска, традиционные средства контроля безопасности могут оказаться неспособными выявить вредоносное поведение.
Ключевые характеристики, определяющие это новое поколение атак на цепочки поставок, включают в себя:
- Злоупотребление механизмами доверенной публикации и обмена токенами OIDC.
- Распространение через легитимные рабочие процессы CI/CD и системы сборки.
- Использование действительных аттестаций SLSA для маскировки вредоносных пакетов.
- Операции по извлечению и сохранению учетных данных по нескольким каналам
- Деструктивные механизмы мести, предназначенные для запугивания защитников.
Расширение кампании на инструменты искусственного интеллекта, корпоративную автоматизацию, поисковую инфраструктуру, фронтенд-разработку, инструменты для авиационной отрасли и экосистемы CI/CD демонстрирует, насколько тесно взаимосвязаны цепочки поставок программного обеспечения. Мониторинг поведения во время установки пакетов и выполнения сборки становится все более важным для выявления угроз, которые на первый взгляд кажутся законными.