CVE-2026-121747: nvm prints the contents of any readable file through a symlinked .nvmrc
- 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 7.7 of all scored records. A probability estimated by FIRST, not a report of exploitation.
- How severe?
- 6.7 Medium
CVSS v4.0 base score, given by the CNA
- What should I do?
Upgrade to nvm 0.41.0 or later.Solution from the CVE record.
CISA has set no required action, because the vulnerability is not in KEV.
- Which versions are affected?
Affected
- from 0.2.0 to before 0.41.0
Source: CISA KEV 2026.11.10, as of ; FIRST EPSS, as of ; CVE List, as of . About the data.
Description
nvm prints the contents of any readable file through a symlinked .nvmrc
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.
Source: CVE List, as of . About the data.
What to do
Advisories and patches
Workaround (from the CVE record)
Until upgrading, check for a symlinked `.nvmrc` (`ls -l .nvmrc`) before running nvm in an untrusted project directory, and do not run nvm in CI for untrusted branches where its output is visible to their authors.
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)
| Status | Versions |
|---|---|
| Affected | from 0.2.0 to before 0.41.0 |
Versions not listed are: unaffected.
Source: CVE List, as of . About the data.
Weakness
CWE-59, CWE-61, CWE-200
- CWE-59: Improper Link Resolution Before File Access ('Link Following')
- CWE-61: UNIX Symbolic Link (Symlink) Following
- CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
CWE and CAPEC are maintained by MITRE; the entries are those named in the CVE record.
Timeline
| Date | Event |
|---|---|
| CVE record published | |
| CVE record last updated |