Расплата за vibe coding: GitHub добавил ручное одобрение публикаций в npm
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
Читать на habr.com