CVE-2026-121747 Lectura de archivos mediante .nvmrc simbólico en nvm
nvm no verifica si .nvmrc es un enlace simbólico, por lo que un repositorio o archivo que lo incluya apuntando a otro archivo hace que comandos como nvm use, nvm install o nvm which lean ese archivo e impriman su contenido en el mensaje de error. Afecta a las versiones 0.2.0 a 0.40.8; la 0.41.0 sigue el enlace simbólico.
CVSS 3.1
- CVSS 4.06.7 · media
- Probabilidad de explotación · EPSS del 09/110,2 % · percentil 7
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
nvm-sh nvm
desde 0.2.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:H/I:N/A:N
- Vector de ataqueLocal
- Complejidad del ataqueBaja
- Privilegios requeridosNinguno
- Interacción del usuarioRequerida
- AlcanceSin cambio
- ConfidencialidadAlta
- IntegridadNinguna
- DisponibilidadNinguna
CVSS 4.0 · 6.7 MEDIA
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:N/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)Alta
- Integridad (sistema vulnerable)Ninguna
- 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.2.0 through 0.40.8, nvm does not check whether `.nvmrc` is a symbolic link. A repository or archive that ships `.nvmrc` as a symlink to another file (for example `../../.npmrc`, or `/proc/self/environ` on Linux) makes a plain `nvm use`, `nvm install`, `nvm which`, `nvm exec`, `nvm run`, or `nvm-exec` read that file and print its contents in the invalid-`.nvmrc` message (even with `--silent`) or, for a one-line file, in the `Found ... with version <...>` message; with the README's zsh `load-nvmrc` or bash `cdnvm` hook installed, entering the directory is enough. nvm sends the content nowhere; the attacker learns it only where they can see the victim's output, such as a CI log for a contributed branch. Version 0.41.0 still follows a symlinked `.nvmrc`, so deliberate links to another version file keep working, but never prints its content, and accepts it only if it contains a version or the name of an existing alias; the README's bash `cdnvm` hook, which read `.nvmrc` itself, now gets the version from nvm, so users of that hook must also update their copy of it.
Referencias (3)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.