
Атака на цепочку поставок npm, начавшаяся с одной скомпрометированной библиотеки keyv, расползлась минимум на 868 пакетов с суммарным числом установок больше двух миллиардов в месяц.
Атака начинается с вредоносного preinstall-хука, вшитого в keyv: он ворует креды в момент установки пакета — токены npm, токены GitHub, ключи AWS и прочее. Украденные токены тут же автоматически используются, чтобы опубликовать заражённые обновления в другие пакеты, до которых дотягивается скомпрометированный мейнтейнер или токен — именно так червь расползается с одной библиотеки на сотни без единого ручного движения атакующего. Это та же самовоспроизводящаяся схема, которую в 2026 году уже видели не раз: в марте — компрометация axios (связывают с северокорейской UNC1069), в мае — node-ipc, откуда воровали больше 90 категорий кредов, включая облачные ключи, SSH-ключи и секреты CI/CD.
При масштабе в 868 пакетов и миллиарды установок в месяц реалистичный вопрос уже не «ставили ли мы заражённый пакет», а «какая из наших зависимостей, прямых или транзитивных, пересеклась с этим в окно компрометации». Лок-файлы помогают, но только если версии реально зафиксированы и вы проверяете, что автоматика подтянула именно в этот период, а не просто доверяете пакету потому, что он популярный.
Повторяющийся урок npm-инцидентов 2026 года один: граница доверия в современном софте — это дерево зависимостей, а не код, который написали вы сами. Проверка того, что реально лежит в этом дереве и может ли скомпрометированная зависимость дотянуться до чего-то чувствительного в вашем пайплайне сборки, — это работа нашего аудита исходного кода.