Релиз пакетного менеджера NPM 12.0, в новой версии по умолчанию прекращён запуск скриптов во время установки пакетов
8 июля 2026 года состоялся выпуск пакетного менеджера NPM 12.0. Это решение входит в поставку Node.js и применяется для распространения модулей на языке JavaScript. Новая версия проекта примечательна прекращением по умолчанию запуска скриптов во время установки пакетов. Это изменение должно усложнить проведение атак через компрометацию зависимостей и замедлить распространение червей, активируемых из установочных скриптов.
По информации OpenNET, для запрета автозапуска скриптов, указанных в package.json через параметры preinstall, install или postinstall, настройка allowScripts по умолчанию выставлена в значение «off». Выполнение подобных скриптов, а также запуск компиляции C/C++ кода утилитой node‑gyp при наличии в пакете файла binding.gyp, теперь производится только при получении явной инструкции от пользователя. Помимо этого, параметры «‑allow‑git» и «‑allow‑remote» по умолчанию теперь выставлены в значение «none», что отключает автоматическую загрузку зависимостей из Git‑репозиториев и по прямым ссылкам на сайты с tar‑архивами.
Для организации запуска установочных скриптов следует использовать команду «npm approve‑scripts», в качестве аргумента которой передаются имена пакетов, заслуживающих доверия, или опция «‑all» для предоставления разрешения всем пакетам. Для подозрительных пакетов рекомендовано запускать команду «npm approve‑scripts ‑allow‑scripts‑pending», которая выведет список претендующих на запуск скриптов. После проверки данных скриптов их можно разрешить командой «npm approve‑scripts» и добавить в белый список в package.json.
Также в новой версии NPM анонсирован запрет использования в репозитории NPM GAT‑токенов доступа (Granular Access Tokens), настроенных для выполнения действий без двухфакторной
Читать на habr.com