CVE-2026-121745 · Package
NO FIX YET
nvm 0.40.0 through 0.40.8 passes the NVM_AUTH_HEADER credential to curl or wget as a command-line argument during downloads. Any other local user on the same machine can read the token from the process list and use it to reach the private mirror it grants access to.
first public Nov 4, 2026 · 1 source
Check it with your coding agent
It checks your repository and tells you if you’re affected, with the fix.
Only users who set NVM_AUTH_HEADER to reach a private package mirror on a host that other local accounts can log into are exposed. Single-user machines and setups without that variable are not affected. Systems where BusyBox wget is the only downloader still pass the header as an argument even on 0.41.0.
Not affected if hidepid-set, no-nvm_auth_header, single-user-machine, version-0.41.0-or-later
Who cares node.js, nvm, private-mirror, shared-hosts
nvm --version to see whether the installed version is between 0.40.0 and 0.40.8NVM_AUTH_HEADER is set in shell profiles or the environment of users on a shared host/proc is mounted with hidepid= on Linux, since that limits who can read process argumentsUnknown from the sources.
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, when NVM_AUTH_HEADER is set, nvm_download passes the credential to curl or wget as a --header "Authorization: ..." command-line argument. Process arguments are visible to every local user (on Linux via ps or /proc//cmdline unless /proc is mounted with hidepid=; on macOS via ps), so another unprivileged account on the same machine can read the token while nvm is downloading during nvm ls-remote, nvm install, and similar commands, and gain whatever access it grants on the private mirror. Only users who set NVM_AUTH_HEADER on a host shared with other local accounts are affected. Version 0.41.0 passes the header to curl on stdin and to GNU Wget in a private temporary config file. BusyBox wget reads no config file, so when it is the only downloader available the header is still passed as an argument.
Are you affected?
Tell InfraStack what you run. It checks this one, and every next one, against your stack.
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
This page as .md · .json · CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.