VulnTideExploited vulnerabilities, by vendor. Data as of .
Not in CISA KEVPublished CVSS 2.1 lowEPSS 0.2% probability of exploitation in 30 daysFound by AI: Anthropic (Claude)
nvm-sh

CVE-2026-121751: nvm evaluates a malicious mirror's index.tab version strings as shell arithmetic via stored LTS aliases

Is it exploited?

Not on CISA's list. CISA has not added it to the Known Exploited Vulnerabilities catalog as of . If CISA adds it, this page shows it as known exploited.

How likely is exploitation in the next 30 days?
0.2%

EPSS score, percentile 14.2 of all scored records. A probability estimated by FIRST, not a report of exploitation.

How severe?
2.1 Low

CVSS v4.0 base score, given by the CNA

What should I do?

Upgrade to nvm 0.41.0 or later, which only lets an all-digit `lts/-N` offset reach shell arithmetic and drops mirror rows with invalid version strings. (Only needed if … Full textSolution from the CVE record.

CISA has set no required action, because the vulnerability is not in KEV.

Advisories and patches (2)

Which versions are affected?

Affected

  • from 0.39.6 to before 0.41.0

Versions by product

Source: CISA KEV 2026.11.10, as of ; FIRST EPSS, as of ; CVE List, as of . About the data.

Description

nvm evaluates a malicious mirror's index.tab version strings as shell arithmetic via stored LTS aliases

Node Version Manager (nvm) is a POSIX-compliant shell function for managing multiple node.js versions. In versions 0.39.6 through 0.40.8, `nvm ls-remote` (and other commands that refresh remote LTS aliases) store the version column of the mirror's `index.tab` in `$NVM_DIR/alias/lts/` without validating it, and `nvm_normalize_lts` later evaluates any suffix of an `lts/-N` value inside shell arithmetic `$((N+1))`. Under bash and zsh, arithmetic evaluation expands command substitutions in array subscripts, so a stored value such as `lts/-10*path[$(cmd)1]` runs `cmd` as the user when the alias is later resolved by purely local commands (`nvm ls`, `nvm alias`, `nvm use --lts`, `nvm which lts/`), and in every new shell when the `default` alias is `lts/*`. Exploitation requires the victim to use a hostile mirror -- via a compromised mirror or CDN, a network man-in-the-middle of an `http://` mirror, or a maliciously configured `NVM_NODEJS_ORG_MIRROR` -- and to run an affected command. The same sink is also reachable from a project `.nvmrc`, which is treated as hardening. dash is not affected. Version 0.41.0 only passes an all-digit `lts/-N` offset to arithmetic and drops `index.tab` rows whose version is not a valid version string.

Source: CVE List, as of . About the data.

What to do

Advisories and patches

Solution (from the CVE record)

Upgrade to nvm 0.41.0 or later, which only lets an all-digit `lts/-N` offset reach shell arithmetic and drops mirror rows with invalid version strings. (Only needed if using a non-default mirror whose metadata contents you do not trust, or running nvm in untrusted project directories.)

Workaround (from the CVE record)

Until upgrading, only run `nvm ls-remote` and LTS-refreshing commands against trusted mirrors over TLS, ensure `NVM_NODEJS_ORG_MIRROR` points only at a trusted endpoint, and do not run nvm in untrusted project directories.

This summary is based on the CVE record as of . Check the vendor's advisory before you act: affected versions and fixes can change.

Affected products and versions

Versions by product, as listed in the CVE record (1 product)
nvm-sh nvm
StatusVersions
Affectedfrom 0.39.6 to before 0.41.0

Versions not listed are: unaffected.

Source: CVE List, as of . About the data.

Weakness

CWE-78, CWE-20
  • CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
  • CWE-20: Improper Input Validation

CWE and CAPEC are maintained by MITRE; the entries are those named in the CVE record.

Timeline

DateEvent
CVE record published
CVE record last updated