~/guides/npm-2026-supply-chain-attacks-timeline

JSON

Год атак на npm: хроника от Axios до AsyncAPI, и что это значит для вашего package.json

Разбор волны supply chain атак 2026 года на npm-экосистему и практические выводы для конкретного проекта.

2026 год стал самым тяжёлым годом для npm-экосистемы с точки зрения supply chain безопасности. Не единичный инцидент, а нарастающая серия атак — от захвата аккаунта одного из самых популярных пакетов до компрометации целого релизного пайплайна через неправильные права доступа.

Хроника года

Дата Инцидент Вектор
31 марта Axios (100 млн загрузок в неделю) Взлом аккаунта мейнтейнера, внедрение вредоносной зависимости plain-crypto-js
Апрель-май Волны Shai-Hulud и Mini Shai-Hulud Самораспространяющийся npm-червь, сотни пакетов
Июнь Mastra AI, @redhat-cloud-services (32 пакета) Компрометация аккаунта через вредоносное расширение VS Code
11 июля jscrambler 8.14.0 Вредоносный preinstall-хук, инфостилер
14 июля AsyncAPI (@asyncapi/generator и связанные) Компрометация CI/CD пайплайна, import-time payload

Реакция экосистемы

Именно в ответ на этот год атак npm v12 вышел с самым значительным редизайном безопасности за шестнадцать лет истории — блокировкой install-скриптов, git-зависимостей и удалённых источников по умолчанию. Показательный факт: jscrambler-атака произошла всего через три дня после релиза npm v12, специально спроектированного, чтобы блокировать именно эту технику — атакующие адаптировались в течение нескольких часов.

Почему AsyncAPI-атака особенная

В отличие от большинства инцидентов, AsyncAPI-пакеты выполняли вредоносный код при импорте (require/import), а не при установке — а значит, блокировка install-скриптов в npm v12 здесь просто не работает. Атакующий даже не крал npm-токен, а воспользовался push-доступом в ветку репозитория и позволил легитимному CI-пайплайну самому опубликовать пакет с валидной провенанс-атрибуцией.

Практические выводы для вашего проекта

Обновление до npm v12 и настройка allowScripts закрывает install-time вектор, но не защищает от import-time атак вроде AsyncAPI. Второй практический вывод — permissions в собственных GitHub Actions workflow заслуживают такого же внимания, как зависимости проекта, потому что именно избыточные права позволили захватить пайплайн AsyncAPI.

Как проверить свой проект по всем фронтам сразу

npm 2026 Supply Chain Incident Checker сверяет зависимости с известными инцидентами, а GitHub Actions Workflow Permissions Batch Auditor проверяет собственные workflow-файлы на паттерн, который привёл к захвату AsyncAPI.

Итоговый чеклист

Год отмечен нарастающей эскалацией атак — от захвата отдельных аккаунтов до компрометации целых CI/CD пайплайнов через неправильную конфигурацию.

npm v12 закрывает install-time вектор атак, но AsyncAPI-инцидент показал, что import-time payload остаётся незащищённым этим механизмом.

Permissions в собственных GitHub Actions workflow заслуживают такого же security-review, как зависимости проекта.