Экосистему Node.js сотрясла одна из крупнейших атак в истории: неизвестные запустили самораспространяющегося червя ChainDrop, который умудрился заразить 444 пакета и сгенерировать более 2200 вредоносных релизов. В эпицентре катастрофы оказались базовые библиотеки вроде
keyv, flat-cache и file-entry-cache, суммарно собирающие полмиллиарда скачиваний в неделю.Атака стартовала с компрометации аккаунта мейнтейнера
keyv. Злоумышленники пробрались в его GitHub Actions и выкатили вредоносную версию 6.0.0 под видом легитимного обновления с честной SLSA-аттестацией. При установке пакета срабатывал хук preinstall, который незаметно подтягивал Bun runtime и запускал 710-килобайтный обфусцированный скрипт. Далее червь начинал пылесосить систему: шлепал по 140 путям в поисках ключей AWS, GCP, Kubernetes, а также выскребал память /proc/<pid>/mem в раннерах GitHub Actions.Если ChainDrop находил валидный токен к NPM, он автоматически заражал локальные проекты разработчика, публиковал их свежие вредоносные релизы и по цепочке заражал зависимости. Внутри червя обнаружилось немало хакерских фишек:
🟠 EtherHiding: получение C2-команд прямо из смарт-контрактов в блокчейне Ethereum;
🟠 Закрепление: внедрение шпионских конфигов в VS Code, GitHub Copilot и Claude Code;
🟠 Патриотический чекер: полная самоликвидация и остановка работы, если в системе обнаруживалась русскоязычная локаль (
LANG=ru*).Под удар попали такие гиганты, как
cacheable-request (33.9 млн скачиваний/неделя), @cacheable/utils (8.7 млн) и cache-manager (4.2 млн). Разработчикам сейчас настоятельно рекомендуется перевыпустить все токены окружений, заглянуть в настройки своих AI-ассистентов и проверить версионность библиотек в package-lock.json.Linux / Линукс 🥸
