Публикувана е версия 12.0 на пакетния мениджър NPM, който е част от 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.
Освен това, обявен е забраната за използване на GAT токени за достъп (Granular Access Tokens) в репозитория NPM, настроени да извършват операции без двуфакторна автентификация (2FA). Започвайки от август, подобни токени без допълнително ръчно потвърждение няма да позволят извършването на операции като създаване или изтриване на токени, промяна на профил, парола или email, настройка на двуфакторна автентификация, генериране на кодове за възстановяване, промяна на права на достъп и управление на последващите действия.
През януари 2027 година планират да забранят директното публикуване на пакети, използващи токени, които заобикалят 2FA. В същото време пакетите ще могат да бъдат публикувани в раздела за staging, където ще останат до ръчното потвърждаване на релиза от придружаващия. След ръчното потвърждаване, публикуваните пакети ще станат достъпни за инсталиране от потребителите.
За автоматично публикуване се предлага механизъм «Trusted Publishers», основан на стандарта OpenID Connect (OIDC) и токени за идентификация с ограничен срок на валидност, които външните услуги и каталогът на пакетите обменят за потвърждение на операцията по публикуване на пакет вместо традиционните пароли или постоянни токени за достъп до API.
Източник: opennet.ru
