Атака ChainDrop заражает свыше 1300 npm-пакетов с 2 млрд загрузок в месяц
Материал подготовлен искусственным интеллектом на основе нескольких источников — ссылки на оригиналы приведены ниже.

Червь ChainDrop для атак на цепочку поставок заразил более 1300 npm-пакетов с общим количеством загрузок свыше 2 миллиардов в месяц, сообщили исследователи 4 августа. Вредонос автоматически запускается при установке, похищая учётные данные разработчиков и облачные токены. Распространение произошло через взлом GitHub-аккаунта популярного мейнтейнера и использование легитимных CI/CD-пайплайнов для публикации заражённых релизов.
Цепочка атаки
Атака началась после взлома GitHub-аккаунта мейнтейнера библиотеки Keyv. Злоумышленник добавил вредоносные файлы в основную ветку Keyv и связанных пакетов — cacheable, flat-cache, file-entry-cache — и запустил сборку новых релизов через легитимные рабочие процессы GitHub Actions. Поскольку пакеты публиковались через доверенные CI/CD-пайплайны, скомпрометированные версии имели действительные подписи происхождения, что затруднило обнаружение. По данным компании Aikido, подтверждено заражение как минимум 868 уникальных пакетов в 1381 версии.
Похищение данных
Каждый заражённый пакет содержит preinstall-скрипт, запускающий дроппер setup.mjs автоматически при выполнении npm install. Дроппер скачивает исполняемую среду Bun с официального GitHub-релиза и с её помощью запускает Math_Symbol.js — основной модуль для кражи данных. Полезная нагрузка собирает переменные окружения, локальные конфигурационные и учётные файлы, токены GitHub (PAT, workflow) и токены npm. Перед отправкой токены проверяются в реальном времени через эндпоинт whoami реестра npm. Похищенные данные шифруются и отправляются в публичный GitHub-репозиторий с описанием 'Shai-Hulud: Here We Go Again'.
Самораспространение
ChainDrop способен самостоятельно заражать другие пакеты, если их мейнтейнеры используют скомпрометированную зависимость. Червь сканирует заражённые системы разработки и CI/CD-раннеры на наличие учётных данных, открывающих доступ к дополнительным репозиториям и npm-пакетам. Используя собранные токены, он может изменять кодовую базу и публиковать новые вредоносные версии, продолжая цепочку компрометации. Вредоносный JavaScript сильно обфусцирован, исследователи BleepingComputer также обнаружили вариант с использованием скрипта math_init.js.
Что дальше
Мейнтейнерам пакетов рекомендуется немедленно проверить свои репозитории и отозвать скомпрометированные токены. Остаётся неясным, смогут ли операторы реестра npm и пострадавшие организации полностью выявить и устранить все заражённые пакеты, так как червь мог распространиться на неотслеживаемые зависимости.
1 источник
Атака ChainDrop заражает свыше 1300 npm-пакетов с 2 млрд загрузок в месяц



