La version 12.0 du gestionnaire de paquets NPM, inclus dans Node.js et utilisĂ©e pour la distribution de modules en JavaScript, a Ă©tĂ© publiĂ©e. Cette nouvelle version se distingue par l'arrĂȘt par dĂ©faut de l'exĂ©cution de scripts lors de l'installation de paquets. Ce changement vise Ă compliquer la rĂ©alisation d'attaques par compromission de dĂ©pendances et Ă ralentir la propagation des vers activĂ©s par des scripts d'installation.
Pour interdire l'exĂ©cution automatique des scripts spĂ©cifiĂ©s dans package.json via les paramĂštres preinstall, install ou postinstall, la configuration allowScripts est par dĂ©faut rĂ©glĂ©e sur « off ». L'exĂ©cution de tels scripts, ainsi que le dĂ©marrage de la compilation de code C/C++ avec l'outil node-gyp en l'absence d'un fichier binding.gyp dans le paquet, se fait dĂ©sormais uniquement sur instruction explicite de l'utilisateur. De plus, les options « âallow-git » et « âallow-remote » sont maintenant rĂ©glĂ©es par dĂ©faut sur « none », ce qui dĂ©sactive le tĂ©lĂ©chargement automatique de dĂ©pendances depuis des dĂ©pĂŽts Git et des liens directs vers des sites avec des archives tar.
Pour organiser l'exĂ©cution de scripts d'installation, il convient d'utiliser la commande « npm approve-scripts », Ă laquelle on passe les noms de paquets dignes de confiance, ou l'option « âall » pour autoriser tous les paquets. Pour les paquets douteux, il est recommandĂ© d'exĂ©cuter la commande « npm approve-scripts âallow-scripts-pending », qui affichera une liste des scripts candidats Ă l'exĂ©cution. AprĂšs vĂ©rification de ces scripts, ils peuvent ĂȘtre autorisĂ©s par la commande « npm approve-scripts » et ajoutĂ©s Ă la liste blanche dans package.json.
De plus, il a été annoncé l'interdiction d'utilisation dans le dépÎt NPM des jetons d'accÚs GAT (Granular Access Tokens), configurés pour effectuer des actions sans authentification à deux facteurs (2FA). à partir d'août, ces jetons ne permettront plus d'effectuer des opérations telles que la création ou la suppression de jetons, la modification de profil, de mot de passe ou d'e-mail, la configuration de l'authentification à deux facteurs, la génération de codes de récupération, la modification des droits d'accÚs et la gestion des accompagnants sans une confirmation manuelle supplémentaire des actions.
En janvier 2027, il est prĂ©vu d'interdire la publication directe de paquets utilisant des jetons contournant le 2FA. Les paquets pourront cependant ĂȘtre publiĂ©s dans la section staging, oĂč ils resteront jusqu'Ă la confirmation manuelle de la version par un accompagnateur. AprĂšs confirmation manuelle, les paquets publiĂ©s seront disponibles pour installation par les utilisateurs.
Pour la publication automatique, il est proposé d'utiliser le mécanisme « Trusted Publishers », basé sur la norme OpenID Connect (OIDC) et des jetons d'authentification à durée limitée échangés entre les services externes et le catalogue de paquets pour confirmer l'opération de publication au lieu d'utiliser des mots de passe traditionnels ou des jetons d'accÚs API permanents.
Source : opennet.ru
