Более тысячи заражённых компонентов могли попасть в приложения через непрямые зависимости, о которых разработчики даже не знали.
<div class="articl-text-cover" style="position:relative;width:100%;max-width:800px;margin-left:auto;margin-right:auto;aspect-ratio:1400/788;margin-bottom:2rem;overflow:hidden">
<div itemprop="articleBody"> Одна установка привычной JavaScript-библиотеки могла открыть злоумышленникам доступ к облачной инфраструктуре, репозиториям и внутренним сервисам компании. Червь Shai-Hulud проник в популярные npm-пакеты, которые суммарно загружают более 2 млрд раз в месяц, а затем начал распространяться через украденные учётные данные разработчиков. Число заражённых компонентов быстро росло и, по последним оценкам исследователей, превысило тысячу.
Атака началась 4 августа после взлома GitHub-аккаунта разработчика Джареда Рэя, который поддерживает библиотеку keyv и несколько популярных инструментов кеширования. Злоумышленники добавили вредоносные файлы прямо в основную ветку проектов, после чего выпустили новые версии через штатный механизм GitHub Actions. В результате заражённые сборки получили действительные подписи npm и сведения о происхождении пакета, поэтому внешне выглядели как легитимные обновления.
Под удар попали keyv, flat-cache, file-entry-cache, cacheable, cache-manager и другие библиотеки, которые часто подключаются к приложениям не напрямую, а через цепочки зависимостей. Только первые заражённые пакеты набирали сотни миллионов загрузок в неделю. Исследователи также обнаружили вредоносные версии компонентов, связанных с Deliveroo, OneReach, Picsart, Qlik и другими компаниями. Суммарные показатели загрузок не равны числу заражённых устройств, поскольку одни проекты могут скачивать несколько связанных библиотек.
Каждая заражённая версия содержала файлы setup.mjs и Math_Symbol.js, а также команду preinstall в package.json. При запуске npm install вредоносный код выполнялся автоматически ещё до завершения установки. Загрузчик незаметно скачивал среду выполнения Bun, а затем запускал основной обфусцированный файл размером около 728 КБ.
Вредоносная программа искала токены npm и GitHub, ключи AWS, секреты Kubernetes, учётные данные Docker, токены HashiCorp Vault, Slack и Stripe. Сканер также проверял файлы .env, конфигурации <span class="vpn-highlight" title="Использование VPN может нарушать законодательство РФ">VPN</span>, базы KeePass, состояния Terraform, настройки сред разработки, закрытые SSH-ключи и строки подключения к базам данных. На компьютерах с macOS и Linux программа использовала около 200 шаблонов поиска и одновременно читала до 64 файлов.
Собранные сведения шифровались и отправлялись в публичные репозитории GitHub с описанием «Shai-Hulud: Here We Go Again». Исследователи нашли около 1300 таких репозиториев. При сбое загрузки через GitHub вредоносная программа обращалась к домену npm-cache.com, зарегистрированному в мае 2026 года. Украденные токены позволяли червю публиковать заражённые версии пакетов от имени новых разработчиков. Так атака переходила с одного проекта на другой без ручного взлома каждого аккаунта. Специалисты Endor Labs считают, что во многих случаях преступники получали токены публикации с серверов сборки, на которых ранее установили заражённую зависимость.
Разработчикам рекомендуют проверить lock-файлы, журналы CI/CD и все зависимости, включая devDependencies. Команды, которые устанавливали затронутые версии после начала атаки, должны заменить токены npm и GitHub, облачные ключи, секреты CI и учётные данные Vault. Для снижения риска специалисты советуют закрепить безопасные версии библиотек, использовать overrides в npm, yarn или pnpm и запускать установку в системах сборки с параметром --ignore-scripts, когда установочные сценарии не нужны.
<div class="articl-text-cover" style="position:relative;width:100%;max-width:800px;margin-left:auto;margin-right:auto;aspect-ratio:1400/788;margin-bottom:2rem;overflow:hidden">
<div itemprop="articleBody"> Одна установка привычной JavaScript-библиотеки могла открыть злоумышленникам доступ к облачной инфраструктуре, репозиториям и внутренним сервисам компании. Червь Shai-Hulud проник в популярные npm-пакеты, которые суммарно загружают более 2 млрд раз в месяц, а затем начал распространяться через украденные учётные данные разработчиков. Число заражённых компонентов быстро росло и, по последним оценкам исследователей, превысило тысячу.
Атака началась 4 августа после взлома GitHub-аккаунта разработчика Джареда Рэя, который поддерживает библиотеку keyv и несколько популярных инструментов кеширования. Злоумышленники добавили вредоносные файлы прямо в основную ветку проектов, после чего выпустили новые версии через штатный механизм GitHub Actions. В результате заражённые сборки получили действительные подписи npm и сведения о происхождении пакета, поэтому внешне выглядели как легитимные обновления.
Под удар попали keyv, flat-cache, file-entry-cache, cacheable, cache-manager и другие библиотеки, которые часто подключаются к приложениям не напрямую, а через цепочки зависимостей. Только первые заражённые пакеты набирали сотни миллионов загрузок в неделю. Исследователи также обнаружили вредоносные версии компонентов, связанных с Deliveroo, OneReach, Picsart, Qlik и другими компаниями. Суммарные показатели загрузок не равны числу заражённых устройств, поскольку одни проекты могут скачивать несколько связанных библиотек.
Каждая заражённая версия содержала файлы setup.mjs и Math_Symbol.js, а также команду preinstall в package.json. При запуске npm install вредоносный код выполнялся автоматически ещё до завершения установки. Загрузчик незаметно скачивал среду выполнения Bun, а затем запускал основной обфусцированный файл размером около 728 КБ.
Вредоносная программа искала токены npm и GitHub, ключи AWS, секреты Kubernetes, учётные данные Docker, токены HashiCorp Vault, Slack и Stripe. Сканер также проверял файлы .env, конфигурации <span class="vpn-highlight" title="Использование VPN может нарушать законодательство РФ">VPN</span>, базы KeePass, состояния Terraform, настройки сред разработки, закрытые SSH-ключи и строки подключения к базам данных. На компьютерах с macOS и Linux программа использовала около 200 шаблонов поиска и одновременно читала до 64 файлов.
Собранные сведения шифровались и отправлялись в публичные репозитории GitHub с описанием «Shai-Hulud: Here We Go Again». Исследователи нашли около 1300 таких репозиториев. При сбое загрузки через GitHub вредоносная программа обращалась к домену npm-cache.com, зарегистрированному в мае 2026 года. Украденные токены позволяли червю публиковать заражённые версии пакетов от имени новых разработчиков. Так атака переходила с одного проекта на другой без ручного взлома каждого аккаунта. Специалисты Endor Labs считают, что во многих случаях преступники получали токены публикации с серверов сборки, на которых ранее установили заражённую зависимость.
Разработчикам рекомендуют проверить lock-файлы, журналы CI/CD и все зависимости, включая devDependencies. Команды, которые устанавливали затронутые версии после начала атаки, должны заменить токены npm и GitHub, облачные ключи, секреты CI и учётные данные Vault. Для снижения риска специалисты советуют закрепить безопасные версии библиотек, использовать overrides в npm, yarn или pnpm и запускать установку в системах сборки с параметром --ignore-scripts, когда установочные сценарии не нужны.
- Источник новости
- www.securitylab.ru