GitHub ужесточает безопасность npm v12: что изменится для разработчиков в июле 2026 года

GitHub вводит в npm v12 жесткие ограничения на автоматические сценарии и внешние зависимости. Обновление выйдет в июле 2026 года — разработчикам нужно подготовиться заранее.
- В июле 2026 года npm v12 отключит по умолчанию автоматические сценарии установки (preinstall, install, postinstall) и нативные сборки через node-gyp без явного разрешения в package.json
- Зависимости из Git-репозиториев и удаленных архивов (tarball) станут недоступны без флагов --allow-git и --allow-remote, что блокирует уязвимости через подмену конфигураций
- Разработчики уже видят предупреждения в текущих версиях npm (с 11.16.0), но в v12 отключения станут жесткими — неодобренные сценарии перестанут работать сразу после обновления
- Подготовка к переходу включает проверку списка блокируемых элементов командой npm approve-scripts --allow-scripts-pending и фиксацию разрешений в package.json до обновления
- Изменения закрывают критические бреши, но могут нарушить работу проектов, зависящих от автоматических скриптов или внешних репозиториев без явных разрешений
- GitHub рекомендует обновиться до npm 11.16.0+ уже сейчас, чтобы протестировать предупреждения и избежать сбоев после июля
В июле 2026 года npm v12 изменит правила игры для миллионов разработчиков. GitHub анонсировал радикальное ужесточение безопасности при установке пакетов: по умолчанию отключит автоматические сценарии (preinstall, install, postinstall) и блокирует зависимости из Git-репозиториев и удаленных архивов без явного разрешения.
Это не просто обновление — это пересмотр подходов к безопасности цепочки поставок. Сейчас, в версиях npm с 11.16.0, разработчики уже видят предупреждения о потенциально опасных сценариях, но в v12 отключения станут жесткими: неодобренные пакеты перестанут устанавливаться автоматически. Например, настройка allowScripts по умолчанию станет off , что заблокирует даже нативные сборки через node-gyp без явного указания в package.json . Аналогично, флаг --allow-git по умолчанию примет значение none , закрывая уязвимость подмены конфигураций в Git-зависимостях.
Если тренд подтвердится, разработчикам придется вручную одобрять каждый доверенный пакет через команды npm approve-scripts и npm deny-scripts , фиксируя разрешения в коммитах.
Это может замедлить CI/CD-процессы и потребовать рефакторинга проектов, зависящих от автоматических скриптов. Однако GitHub обещает, что такие меры снизят риски выполнения зловредного кода из внешних источников. С другой стороны, если эффект от изменений окажется ограниченным (например, большинство проектов уже используют явные разрешения), то переход на v12 пройдет безболезненно.
Но рисковать не стоит: уже сейчас рекомендуется обновиться до npm 11.16.0+, протестировать предупреждения и подготовить package.json к обновлению. За чем следить дальше?
Во-первых, за реакцией сообщества: если разработчики массово столкнутся с проблемами, GitHub может смягчить правила. Во-вторых, за появлением альтернативных инструментов для управления зависимостями, если npm v12 окажется слишком строгим. И в-третьих, за обновлениями в экосистеме: многие пакеты могут обновить свои инструкции по установке под новые требования безопасности.
Изменения в npm v12 — это не просто техническое обновление, а ответ на реальные угрозы безопасности, которые эксплуатируют автоматические сценарии и внешние зависимости. Разработчикам придется адаптироваться, но это необходимая мера: лучше потратить время на настройку сейчас, чем столкнуться с уязвимостями позже. Если GitHub не услышит массовых жалоб, эти меры станут новой нормой — и игнорировать их будет рискованно.
Владимир Платонов
