{"id":"CVE-2026-121746","title":"nvm use --save and nvm install --save write through a symlinked .nvmrc, overwriting any file the user can write","summary":"Node Version Manager (nvm) is a POSIX-compliant shell function for managing multiple node.js versions. In versions 0.40.0 through 0.40.8, `nvm use --save` and `nvm install --save` (or `-w`) write the resolved version to `$PWD/.nvmrc` wit…","severity":"medium","cvss":5.5,"cvssVector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N","cvssSource":"cna","cwe":["CWE-59"],"vendor":"nvm-sh","product":"nvm","affected":["nvm >= 0.40.0 < 0.41.0"],"published":"2026-11-04","updated":"2026-11-04","sourceUpdated":"2026-11-04T21:31:57.022Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-121746","references":[{"url":"https://github.com/nvm-sh/nvm/security/advisories/GHSA-8qjx-8r8m-mpqh","label":"GHSA-8qjx-8r8m-mpqh"},{"url":"https://github.com/nvm-sh/nvm/commit/3f8411e58d40b904e4ff6a96512391f56bd95bf7","label":"Fix commit 3f8411e5"}],"tags":["cve.org"],"ingestedAt":"2026-11-05T21:36:00.619Z","slug":"CVE-2026-121746","body":"## Overview\n\nNode Version Manager (nvm) is a POSIX-compliant shell function for managing multiple node.js versions. In versions 0.40.0 through 0.40.8, `nvm use --save` and `nvm install --save` (or `-w`) write the resolved version to `$PWD/.nvmrc` with `tee`, which follows a symbolic link. A repository that commits `.nvmrc` as a symlink to a path outside itself (git recreates the link on clone) therefore makes `--save` truncate any file the user can write, such as a shell startup file or `~/.ssh/authorized_keys`, and replace its contents with the version string, or create the target of a dangling link; the link itself is left unchanged, so `git status` stays clean. The attacker does not control the content written, so this is data loss, not code execution. Version 0.41.0 refuses, with a warning, to write when `.nvmrc` in the current directory is a symlink, dangling or not, rather than writing through it or replacing it.\n\n## Affected\n\n- `nvm >= 0.40.0 < 0.41.0`\n\n## Remediation\n\nUpgrade to nvm 0.41.0 or later.\n\n### Workarounds\n\nUntil upgrading, check that `.nvmrc` is not a symlink (`ls -l .nvmrc`) before running `nvm use --save` or `nvm install --save` in an untrusted project directory.","depth":"sunlit","depthScore":30,"depthScoreParts":{"impact":30.3,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}