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