CVE-2026-15921: nvm path traversal via a malicious mirror's LTS codename writes outside the alias directory
Node Version Manager (nvm) is a POSIX-compliant shell function for managing multiple node.js versions. In versions 0.32.1 through 0.40.5, nvm ls-remote (and other commands that refresh remote LTS aliases, such as nvm install --lts) parse the node.js mirror's index.tab and use each release's LTS codename field as an alias filename without validating it. A malicious, compromised, or man-in-the-middled mirror can return an LTS codename containing path-traversal sequences such as ../../../.bashrc, causing nvm to write the associated version string to a path outside $NVMDIR/alias. With the default layout ($NVMDIR is ~/.nvm), this can create or overwrite files in the user's home directory, including shell startup files, which can lead to code execution in a later shell session. Exploitation requires the victim to use a hostile mirror -- via a compromised mirror or CDN, a network man-in-the-middle, or a maliciously configured NVMNODEJSORGMIRROR/NVMIOJSORGMIRROR -- and to run an affected command. Version 0.40.6 validates remote LTS codenames as safe alias filenames and rejects .. path components when writing alias files.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
nvmto a version that resolves this vulnerability.Fixed in 0.40.6
Event History
Frequently Asked Questions
What is the severity of CVE-2026-15921?
The severity of CVE-2026-15921 is classified as low with a score of 3.1.
What types of impact does CVE-2026-15921 have?
CVE-2026-15921 can lead to limited integrity issues due to path traversal vulnerabilities.
How do I fix CVE-2026-15921?
To mitigate CVE-2026-15921, update to the latest version of Node Version Manager (nvm) that addresses this vulnerability.
Which versions of nvm are affected by CVE-2026-15921?
CVE-2026-15921 affects nvm versions 0.32.1 through 0.40.5.
What is the nature of the vulnerability in CVE-2026-15921?
CVE-2026-15921 is a path traversal vulnerability that allows malicious LTS codenames to write outside the alias directory.