ChainDrop заражает npm через архивы
В мире разработки произошел тектонический сдвиг: червь ChainDrop, эволюционировавший из легендарного Shai-Hulud, превратил экосистему npm в минное поле. В августе 2026 года был зафиксирован беспрецедентный инцидент — 444 популярных пакета, среди которых ключевые утилиты вроде keyv и cache-manager, оказались скомпрометированы. Суммарный объем ежемесячных загрузок этих библиотек достигает двух миллиардов, что делает атаку одной из самых масштабных по площади покрытия в истории. Уникальность ситуации заключается не в количестве, а в векторе атаки: злоумышленники научились обходить традиционные проверки исходного кода, нанося удар в самый слабый элемент цепочки поставки — момент публикации пакета в реестр.
Ключевая инновация ChainDrop — это работа с tarball-архивами npm в обход Git-репозиториев. Разработчик может открыть GitHub, увидеть чистый код и безопасные коммиты, но при установке пакета через npm install получить исполняемый вредоносный скрипт. Червь использует украденные npm-токены для прямого скачивания архива, инъекции своего кода и перезаливки обновленной версии. При этом история проекта остается девственно чистой, что делает классический код-ревью бесполезным. Параллельно ChainDrop сканирует память процессов и переменные окружения в поисках облачных ключей и учетных данных GitHub, превращая зараженную машину в шлюз для дальнейшей компрометации инфраструктуры разработчика.
Однако репозитории GitHub также стали частью этого смертоносного пазла. ChainDrop использует похищенные токены для записи вредоносных команд в конфигурационные файлы инструментов разработки, такие как .vscode/tasks.json и .claude/settings.json. Эти файлы воспринимаются большинством разработчиков как безобидные настройки интерфейса, но на деле они позволяют запускать произвольный код. Достаточно открыть зараженную ветку проекта в VS Code или Claude Code, как система сама инициирует сбор секретов на новом компьютере. Таким образом, червь распространяется по двум независимым траекториям: через системные зависимости (npm) и через человеческий фактор (открытие стороннего репозитория).
Последствия этой кампании требуют полного пересмотра парадигмы безопасности. Полагаться на доверие к исходному коду на GitHub больше нельзя, так как опубликованный архив является единственной юридически значимой версией пакета. Разработчикам рекомендуется немедленно проверить наличие подозрительных служебных файлов во всех ветках проектов, а не только в main. Автоматические пайплайны CI/CD, автоматически подтягивающие минорные обновления, оказались под прямым ударом. В борьбе с подобными угрозами помогает только переход на механизмы доверенной публикации (через GitHub Actions) и принцип минимальных прав для токенов. ChainDrop наглядно показал, что экосистема JavaScript находится в состоянии хронической уязвимости, где разрыв между «тем, что мы видим» и «тем, что мы исполняем» стал фатальным.




