CVE-2026-121748 Escritura arbitraria de archivos mediante .npmrc en nvm use --delete-prefix
En nvm, cuando el .npmrc de un proyecto define prefix, nvm use indica ejecutar nvm use --delete-prefix, que ejecuta npm config delete sin nombrar un archivo de configuración. El .npmrc del proyecto elige el archivo objetivo, permitiendo corromper archivos como ~/.bashrc o dejar un archivo en modo 0666 en una máquina compartida. Afecta a las versiones 0.27.0 a 0.40.8 y se corrige en la 0.41.0.
CVSS 3.1
- CVSS 4.01.8 · baja
- Probabilidad de explotación · EPSS del 09/110,1 % · percentil 2
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
nvm-sh nvm
desde 0.27.0 hasta antes de 0.41.0
Qué hacer
- Verificá si usás nvm y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
CVSS 3.1 · 3.6 BAJA
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:L
- Vector de ataqueLocal
- Complejidad del ataqueAlta
- Privilegios requeridosNinguno
- Interacción del usuarioRequerida
- AlcanceSin cambio
- ConfidencialidadNinguna
- IntegridadBaja
- DisponibilidadBaja
CVSS 4.0 · 1.8 BAJA
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
- Vector de ataqueLocal
- Complejidad del ataqueBaja
- Requisitos del ataquePresentes
- Privilegios requeridosNinguno
- Interacción del usuarioActiva
- Confidencialidad (sistema vulnerable)Ninguna
- Integridad (sistema vulnerable)Baja
- Disponibilidad (sistema vulnerable)Baja
- Confidencialidad (sistemas posteriores)Ninguna
- Integridad (sistemas posteriores)Ninguna
- Disponibilidad (sistemas posteriores)Ninguna
Descripción original
Node Version Manager (nvm) is a POSIX-compliant shell function for managing multiple node.js versions. In versions 0.27.0 through 0.40.8, when a project's `.npmrc` sets `prefix`, `nvm use` tells the user to run `nvm use --delete-prefix`, which runs `npm config delete prefix` and `npm config delete globalconfig` in the current directory without naming a config file. npm loads the project `.npmrc` before deciding which file to edit, so that file chooses the target: `userconfig=~/.bashrc` makes npm rewrite `~/.bashrc` as ini (corrupting it), and `location=global` with `globalconfig=` leaves the chosen file at mode 0666, which on a shared machine lets another local user write to it. The attacker (the author of a cloned repository or archive, or a local user who can write a shared parent directory) chooses the file but not the bytes written, and no project code runs. Version 0.41.0 no longer lets a project `.npmrc` select which config file `--delete-prefix` edits.
Referencias (2)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.