
GitHub 20 мая 2026 смержил команду npm stage в npm CLI версии 11.15.0 и обновил документацию реестра. Привычная команда npm publish теперь только отправляет пакет в очередь — чтобы он стал доступен миллионам разработчиков, мейнтейнеру нужно дополнительно подтвердить релиз с двухфакторкой. Это первое серьезное изменение модели публикации за всю историю npm — реестра, через который ежедневно проходят миллиарды загрузок и от которого зависит почти весь современный JavaScript-стек.
Технически процесс трехшаговый. Сначала разработчик запускает npm stage publish — двухфакторка тут не нужна, и пакет уходит в очередь. Потом любой мейнтейнер смотрит, что туда улетело: через CLI командой npm stage view <id>или на вкладке Staged Packages на сайте npmjs.com. И только команда npm stage approve <id> с подтверждением 2FA делает пакет публичным. Работает это и с автоматической публикацией из CI/CD: даже если сборочный конвейер залил в очередь что-то странное, оно повисит там, пока живой человек не посмотрит и не одобрит. Минимальные требования — Node.js 22.14.0.
Главный повод — серия атак Shai-Hulud. В 2025 году кампания украла больше $50 млн и заразила примерно 25 000 репозиториев: злоумышленники крали токены мейнтейнеров, выпускали под их аккаунтами вредоносные версии популярных библиотек, а те собирали токены следующих жертв и публиковали себя дальше. В декабре GitHub официально признал, что мгновенная публикация — архитектурная дыра, и анонсировал серию мер. В мае 2026 свежая волна Mini Shai-Hulud от группы Team PCP ударила по @tanstack/react-router (12 млн скачиваний в неделю) и другим библиотекам в экосистемах npm и PyPI.
Параллельно растет второй вектор — slopsquatting. Термин в апреле 2025 ввел Сет Ларсон из Python Software Foundation для атак нового типа: LLM при генерации кода выдумывают несуществующие имена пакетов, потому что они звучат правдоподобно — а атакующие эти выдумки регистрируют первыми, с вредоносным кодом внутри. Исследование USENIX Security 2025 на 576 000 примерах кода и 16 моделях показало, что 19,7% рекомендованных пакетов в реальности не существуют, причем 43% галлюцинаций устойчиво повторяются на одном промпте десять раз подряд. То есть атакующему достаточно прогнать сто запросов к ChatGPT или Claude, собрать список повторяющихся выдумок и зарегистрировать их заранее. В январе 2026 фейковый пакет react-codeshift — смесь реальных jscodeshift и react-codemod, которые LLM перепутал в голове — разошелся по 237 репозиториям через AI-сгенерированные файлы навыков для агентов (agent skills) — инструкции, которые модель подтягивает себе в контекст. И это рифмуется с vibe coding: разработчики массово копируют пакеты из ответов LLM и выкатывают код в прод, почти не проверяя зависимости.
Staged publishing встраивает человека обратно в процесс, который AI-агенты вроде Claude Code или Cursor раньше могли проходить полностью автономно: от написания кода до выкладки в реестр. Эра мгновенной публикации в npm закончилась ровно тогда, когда индустрия как раз училась передавать машинам все больше задач. Кому-то это покажется откатом, кому-то — необходимым тормозом перед следующим Shai-Hulud.
P.S. Поддержать меня можно подпиской на канал «сбежавшая нейросеть«, где я рассказываю про ИИ с творческой стороны.
ссылка на оригинал статьи https://habr.com/ru/articles/1038424/