CVE-2026-121749 nvm passes the version pattern to grep without -e, letting a .nvmrc inject grep options and read local files
- Exploited in the wild
- Not known
- Fix
- None listed
What is CVE-2026-121749?
CVE-2026-121749 is a medium-severity vulnerability in nvm-sh nvm, published on 4 Nov 2026.
Official description
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`.
Weakness: CWE-88
Which versions are affected by CVE-2026-121749?
How do I fix CVE-2026-121749?
No fix has been published for CVE-2026-121749 yet. Limit exposure of the affected software until one is available.
Is CVE-2026-121749 being exploited?
There is no known exploitation of CVE-2026-121749 in the wild and no public exploit code.
Sources
Also known as GHSA-xmxw-6r9w-89gc.