CVE-2026-121749 Inyección de opciones de grep mediante .nvmrc en nvm
nvm pasa el patrón de versión a grep como argumento sin -e, por lo que un .nvmrc cuya primera línea comience con - puede interpretarse como opciones de grep. Con GNU grep, -R busca recursivamente en el directorio actual y nvm puede tratar una cadena de esos archivos como versión, filtrando datos como el token de npm al terminal y a los registros del mirror. Afecta a las versiones 0.5.0 a 0.40.8.
CVSS 3.1
- CVSS 4.04.6 · media
- Probabilidad de explotación · EPSS del 09/110,2 % · percentil 5
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
nvm-sh nvm
desde 0.5.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.3 BAJA
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N
- Vector de ataqueLocal
- Complejidad del ataqueBaja
- Privilegios requeridosNinguno
- Interacción del usuarioRequerida
- AlcanceSin cambio
- ConfidencialidadBaja
- IntegridadNinguna
- DisponibilidadNinguna
CVSS 4.0 · 4.6 MEDIA
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/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)Baja
- 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.5.0 through 0.40.8, the requested version pattern is passed to `grep` as a bare argument, without `-e`, in `nvm_ls_remote_index_tab`, `nvm_remote_version`, and `nvm_ls_cached`. A `.nvmrc` whose first line starts with `-`, such as `-Rohenpm_[A-Za-z0-9]*`, is parsed as grep options; with GNU grep, `-R` searches the current directory recursively (following symlinks) instead of the version list. On a bare `nvm install`, nvm then treats a matched string from those files as the version, prints it, and requests it from the configured mirror inside download URLs, so for example a repository containing a symlink to `../../.npmrc` can leak the user's npm token to the terminal and to the mirror's and any proxy's logs. The disclosure is read-only and limited to the characters `0-9A-Za-z._+-`. Version 0.41.0 passes every version pattern to grep with `-e`.
Referencias (2)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.