Angela Sofíá Osorio
Tiempo de lectura 3 minutes
Fecha de publicación
El equipo de npm decidió que ya fue suficiente con los scripts maliciosos colándose por la puerta trasera. La versión 12, programada para julio de 2026, viene con la tijera afilada y cambia las reglas del juego en la seguridad de la cadena de suministro.
Si estabas acostumbrado a ejecutar tu comando de instalación y dejar que la magia ocurriera sin cuestionar nada, la fiesta terminó. La nueva filosofía es clara: nada se ejecuta a menos que tú lo autorices explícitamente.
El fin de la ejecución automática de código
Instalar un paquete ya no será una ruleta rusa. El cambio más significativo es que allowScripts viene desactivado por defecto. Esto bloquea en seco cualquier script tipo preinstall, install o postinstall.
Incluso las compilaciones nativas de node-gyp se quedarán esperando tu aprobación. Si un paquete intenta compilar algo en el fondo sin que te des cuenta, npm simplemente le cerrará la puerta en la cara.
Restricciones para Git y URLs remotas
La paranoia de seguridad, que en este ecosistema es muy bienvenida, se extiende a las fuentes de descarga. El parámetro --allow-git ahora tiene como valor predeterminado none.
Esto elimina un vector de ataque bastante astuto donde una dependencia de Git podía usar un archivo .npmrc modificado para sobreescribir configuraciones y ejecutar código arbitrario.
Además, la bandera --allow-remote también pasará a none. Olvídate de descargar dependencias directamente desde URLs remotas o archivos tarball por HTTP sin antes firmar una autorización expresa en tu terminal.
Cómo preparar tu proyecto antes de julio
El impacto de estas modificaciones será masivo. Muchos flujos de integración continua van a fallar estrepitosamente si no te adelantas a la actualización oficial de npm v12.
Por suerte, puedes probar este nivel de bloqueo desde las versiones recientes de la rama 11. Al ejecutar tus instalaciones actuales, la consola te mostrará advertencias sobre los procesos que quedarían detenidos.
Los comandos que debes memorizar
Para lidiar con el nuevo flujo de trabajo, deberás utilizar npm approve-scripts --allow-scripts-pending para ver qué paquetes intentan ejecutar código. Así podrás dar luz verde solo a las herramientas en las que confíes.
Una vez que lo apruebes, el sistema generará una lista de acceso permitida en tu package.json. Este registro deberá ser añadido a tu control de versiones para que el resto de tu equipo y servidores trabajen sin interrupciones.
Si ves algo sospechoso o innecesario, simplemente bloquea el acceso con npm deny-scripts. Es un momento excelente para auditar dependencias antiguas y limpiar la casa.
La seguridad por defecto requiere un poco más de trabajo manual, pero nos evita dolores de cabeza monumentales. Audita tus dependencias hoy mismo. ¿Ya probaste las versiones preliminares en tu proyecto principal o prefieres esperar a que todo se rompa en julio? Cuéntanos tu plan de acción en los comentarios.
Contents
