CVE-2026-121749
Dashboard / Vulnerabilities / CVE-2026-121749
Summary: nvm passes the version pattern to grep without -e, letting a .nvmrc inject grep options and read local files
Details: 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`.
References: https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/121xxx/CVE-2026-121749.json, https://github.com/nvm-sh/nvm/security/advisories/GHSA-xmxw-6r9w-89gc, https://nvd.nist.gov/vuln/detail/CVE-2026-121749, https://github.com/nvm-sh/nvm/commit/bce663e3873fadbe8ebbc6e07e8d76fb12d5d69e, https://github.com/nvm-sh/nvm
Affected packages
Package
Name:
Purl:
Affected ranges
Type: GIT
Events:
