CVE-2026-121746 Sobrescritura de archivos mediante .nvmrc simbólico en nvm use --save
nvm use --save y nvm install --save escriben la versión resuelta en $PWD/.nvmrc con tee, que sigue enlaces simbólicos. Un repositorio que incluya .nvmrc como enlace a una ruta externa hace que --save trunque cualquier archivo escribible, como un archivo de inicio de shell o ~/.ssh/authorized_keys, y lo reemplace por la cadena de versión. Afecta a las versiones 0.40.0 a 0.40.8 y se corrige en la 0.41.0.
CVSS 3.1
- CVSS 4.06.7 · media
- Probabilidad de explotación · EPSS del 09/110,2 % · percentil 6
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
nvm-sh nvm
desde 0.40.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 · 5.5 MEDIA
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N
- Vector de ataqueLocal
- Complejidad del ataqueBaja
- Privilegios requeridosNinguno
- Interacción del usuarioRequerida
- AlcanceSin cambio
- ConfidencialidadNinguna
- IntegridadAlta
- DisponibilidadNinguna
CVSS 4.0 · 6.7 MEDIA
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
- Vector de ataqueLocal
- Complejidad del ataqueBaja
- Requisitos del ataqueNinguno
- Privilegios requeridosNinguno
- Interacción del usuarioActiva
- Confidencialidad (sistema vulnerable)Ninguna
- Integridad (sistema vulnerable)Alta
- Disponibilidad (sistema vulnerable)Ninguna
- 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.40.0 through 0.40.8, `nvm use --save` and `nvm install --save` (or `-w`) write the resolved version to `$PWD/.nvmrc` with `tee`, which follows a symbolic link. A repository that commits `.nvmrc` as a symlink to a path outside itself (git recreates the link on clone) therefore makes `--save` truncate any file the user can write, such as a shell startup file or `~/.ssh/authorized_keys`, and replace its contents with the version string, or create the target of a dangling link; the link itself is left unchanged, so `git status` stays clean. The attacker does not control the content written, so this is data loss, not code execution. Version 0.41.0 refuses, with a warning, to write when `.nvmrc` in the current directory is a symlink, dangling or not, rather than writing through it or replacing it.
Referencias (2)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.