---
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'
---

## Overview

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` 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.

## Affected

- `nvm >= 0.40.0 < 0.41.0`

## Remediation

Upgrade to nvm 0.41.0 or later.

### Workarounds

Until 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.
