GitHub ha anunciado oficialmente el lanzamiento de npm versión 12 con los scripts de instalación deshabilitados de forma predeterminada, junto con los tokens de acceso granular (GAT) en desuso diseñados para evitar la autenticación de dos factores (2FA).
La subsidiaria propiedad de Microsoft señaló que los siguientes comportamientos de instalación de npm que solían ejecutarse automáticamente antes se han habilitado:
- El valor predeterminado de enableScripts está desactivado, lo que significa que los scripts del ciclo de vida de la dependencia (es decir, preinstalación, instalación, postinstalación) y las compilaciones implícitas de node-gyp ya no se ejecutan a menos que se permitan explícitamente.
- –allow-git tiene el valor predeterminado none, lo que significa que –allow-git tiene el valor predeterminado none: las dependencias de Git (directas o transitivas) ya no se resuelven a menos que se permitan explícitamente.
- –allow-remote tiene el valor predeterminado none, lo que significa que las dependencias de URL remotas (por ejemplo, archivos tar https) ya no se resuelven a menos que se permitan explícitamente.
Para revisar y aprobar scripts confiables, ahora los usuarios deben ejecutar: “npm aprobar-scripts –allow-scripts-pending” y luego confirmar la lista de permitidos resultante en el archivo “package.json”.
Vale la pena señalar que estos cambios se obtuvieron una vista previa el mes pasado, y GitHub recomendó a los desarrolladores actualizar a npm 11.16.0 o más reciente, ejecutar el comando de instalación normal y revisar las advertencias mostradas.
La última versión de npm también introduce dos nuevos cambios:
- Los GAT de npm configurados para omitir 2FA ya no podrán realizar acciones confidenciales de administración de cuentas, paquetes y organizaciones. Esto incluye crear o eliminar tokens, generar códigos de recuperación y cambiar la contraseña de la cuenta npm, el correo electrónico, el perfil o la configuración 2FA, cambiar el acceso a los paquetes, los mantenedores o la configuración de publicación confiable, y administrar la membresía de la organización y el equipo, así como sus concesiones de paquetes.
- Los GAT de npm ya no conservarán la capacidad de publicar directamente. Su superficie de publicación se limitará a leer paquetes privados y realizar una publicación, donde un paquete solo se vuelve público después de la aprobación humana de 2FA.
Se espera que el primero de los dos cambios entre en vigor a principios de agosto de 2026. Mientras tanto, se recomienda dejar de usar tokens de derivación de 2FA para las operaciones antes mencionadas y realizarlas de forma interactiva con 2FA. El segundo cambio está previsto para enero de 2027.
“Para prepararse, planee trasladar la publicación automatizada a una publicación confiable (OIDC) o una publicación por etapas con un paso de aprobación humana, en lugar de un token de publicación de larga duración”, dijo GitHub.
El desarrollo se produce cuando pnpm 11.10 introduce una nueva configuración “_auth” para configurar la autenticación del registro como un valor único estructurado con clave URL.
“El beneficio de seguridad es que la credencial y el host al que pertenece viajan juntos, y pnpm lee _auth solo desde el entorno o la configuración global, nunca desde los archivos de un proyecto”, explicó Socket.
“Eso significa que un pnpm-workspace.yaml o .npmrc malicioso o comprometido dentro de un repositorio no puede apuntar un token válido a un host diferente. Un archivo de proyecto manipulado es una forma común en que los atacantes consiguen un punto de apoyo, y redirigir un token de registro es una ruta directa para robarlo, por lo que cerrar esa ruta elimina la exposición”.