В NPM 12.0 по умолчанию отключён запуск скриптов при установке пакетов

Опубликован выпуск пакетного менеджера NPM 12.0, входящего в поставку Node.js и применяемого для распространения модулей на языке JavaScript. Новая версия примечательна прекращением по умолчанию запуска скриптов во время установки пакетов. Предполагается, что изменение усложнит проведение атак через компрометацию зависимостей и замедлит распространение червей, активируемых из установочных скриптов.

Для запрета автозапуска скриптов, указанных в 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 GAT-токенов доступа (Granular Access Tokens), настроенных для выполнения действий без двухфакторной аутентификации (2FA). Начиная с августа подобные токены без дополнительного ручного подтверждения действий не позволят выполнять такие операции, как создание или удаление токенов, изменение профиля, пароля или email, настройка двухфакторной аутентификации, генерация кодов восстановления, изменение прав доступа и управление сопровождающими.

В январе 2027 года намерены запретить прямую публикацию пакетов с использование токенов, обходящих 2FA. При этом пакеты можно будет опубликовать в staging-разделе, в котором они будут находиться до ручного подтверждения релиза сопровождающим. После ручного подтверждения опубликованные пакеты станут доступны для установки пользователями.

Для автоматической публикации предлагается использовать механизм «Trusted Publishers», основанный на использовании стандарта OpenID Connect (OIDC) и токенов аутентификации с ограниченным временем действия, которыми обмениваются внешние сервисы и каталог пакетов для подтверждения операции публикации пакета вместо использования традиционных паролей или постоянных токенов доступа к API.



Источник: http://www.opennet.ru/opennews/art.shtml? num=65878

© OpenNet