En NPM 12.0, de forma predeterminada se desactiva la ejecución de scripts al instalar paquetes

Se ha publicado la versión 12.0 del gestor de paquetes NPM, que se incluye en la distribución de Node.js y se utiliza para la distribución de módulos en JavaScript. Esta nueva versión es notable por la desactivación predeterminada de la ejecución de scripts durante la instalación de paquetes. Se espera que este cambio complique la realización de ataques a través de la compromisión de dependencias y ralentice la propagación de gusanos activados desde scripts de instalación.

Para prohibir la ejecución automática de scripts indicados en package.json a través de los parámetros preinstall, install o postinstall, la configuración allowScripts se establece de forma predeterminada en 'off'. La ejecución de dichos scripts, así como la compilación de código C/C++ por la utilidad node-gyp cuando hay un archivo binding.gyp en el paquete, ahora solo se realiza con una instrucción explícita del usuario. Además, los parámetros '--allow-git' y '--allow-remote' están configurados por defecto en 'none', lo que desactiva la carga automática de dependencias desde repositorios de Git y enlaces directos a sitios con archivos tar.

Para organizar la ejecución de scripts de instalación, debe usar el comando 'npm approve-scripts', al cual se le pasan como argumento los nombres de los paquetes de confianza, o la opción '--all' para otorgar permiso a todos los paquetes. Para paquetes dudosos, se recomienda ejecutar el comando 'npm approve-scripts --allow-scripts-pending', que mostrará una lista de scripts en espera de ejecución. Después de revisar estos scripts, se pueden permitir con el comando 'npm approve-scripts' y agregar a la lista blanca en package.json.

Además, se ha anunciado la prohibición del uso de tokens de acceso GAT (Granular Access Tokens) en el repositorio de NPM, configurados para realizar acciones sin autenticación de dos factores (2FA). A partir de agosto, tales tokens no permitirán la realización de operaciones como la creación o eliminación de tokens, el cambio de perfil, contraseña o correo electrónico, la configuración de la autenticación de dos factores, la generación de códigos de recuperación, el cambio de permisos y la gestión de colaboradores sin una verificación manual adicional.

En enero de 2027 se planea prohibir la publicación directa de paquetes que utilizan tokens eludiendo 2FA. Sin embargo, los paquetes podrán publicarse en la sección de staging, donde permanecerán hasta que el acompañante confirme manualmente el lanzamiento. Tras esta confirmación manual, los paquetes publicados estarán disponibles para que los usuarios los instalen.

Para la publicación automática, se propone utilizar el mecanismo de «Trusted Publishers», basado en el estándar OpenID Connect (OIDC) y tokens de autenticación con tiempo limitado, que intercambian servicios externos y el catálogo de paquetes para confirmar la operación de publicación del paquete en lugar de usar contraseñas tradicionales o tokens de acceso permanentes a la API.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster