CVE-2026-121748 PUBLISHED

nvm use --delete-prefix lets a project .npmrc choose which file npm rewrites or makes world-writable

Assigner: harborist
Reserved: 03.11.2026 Published: 04.11.2026 Updated: 04.11.2026

Node Version Manager (nvm) is a POSIX-compliant shell function for managing multiple node.js versions. In versions 0.27.0 through 0.40.8, when a project's .npmrc sets prefix, nvm use tells the user to run nvm use --delete-prefix, which runs npm config delete prefix and npm config delete globalconfig in the current directory without naming a config file. npm loads the project .npmrc before deciding which file to edit, so that file chooses the target: userconfig=~/.bashrc makes npm rewrite ~/.bashrc as ini (corrupting it), and location=global with globalconfig= leaves the chosen file at mode 0666, which on a shared machine lets another local user write to it. The attacker (the author of a cloned repository or archive, or a local user who can write a shared parent directory) chooses the file but not the bytes written, and no project code runs. Version 0.41.0 no longer lets a project .npmrc select which config file --delete-prefix edits.

Metrics

CVSS Vector: CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
CVSS Score: 1.8

Product Status

Vendor nvm-sh
Product nvm
Versions Default: unaffected
  • affected from 0.27.0 to 0.41.0 (excl.)

Workarounds

Until upgrading, do not run nvm use --delete-prefix in an untrusted project directory; remove the prefix setting from your own npmrc files by hand instead.

Solutions

Upgrade to nvm 0.41.0 or later.

Credits

  • Anthropic's OSS Scanner, as vulnerability ANT-2026-WYRTKBQ5 finder
  • Jordan Harband (https://github.com/ljharb) remediation developer

References

Problem Types

  • CWE-73 External Control of File Name or Path CWE