CVE-2026-121750 · Package
NO FIX YET · SEE WHAT TO DO
nvm versions 0.40.5 through 0.40.8 keep a Node.js archive in its cache even after its checksum fails, and a later offline install uses that archive without checking it again. An attacker who can alter the downloaded tarball but cannot forge the checksum file can get their code run as node and npm on the victim's machine.
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.
Developers and build machines that use nvm 0.40.5 through 0.40.8 to install Node.js. Exposure needs an attacker who can alter the downloaded tarball, such as a poisoned CDN or cache object, while the checksum file stays intact, and a victim who runs an offline install after a checksum failure. Machines on 0.41.0 or later, or that never run nvm install --offline, can skip it.
Not affected if no-offline-install, nvm-0.41.0-or-later, trusted-download-path
Who cares ci, developers, node, nvm
nvm --version and check whether it reports a version from 0.40.5 to 0.40.8$NVM_DIR/.cache after a failed installnvm install --offline in scripts or CI0.41.0 only caches an archive once its checksum has passedNode Version Manager (nvm) is a POSIX-compliant shell function for managing multiple node.js versions. In versions 0.40.5 through 0.40.8, nvm_download_artifact downloads a release archive directly to its final path in $NVM_DIR/.cache and verifies its checksum afterwards; on a checksum mismatch it reports an error but leaves the rejected archive in place. A later nvm install --offline of the same version installs that cached file without a checksum, so an archive that was just rejected gets installed and its node and npm run. This gives code execution to a party who can alter the downloaded tarball (for example a poisoned CDN or cache object) but cannot also forge the SHASUMS256.txt beside it, if the victim runs nvm install --offline for that version after the visible "Checksums do not match" failure and before any online retry. Version 0.41.0 only puts an archive in the cache once its checksum has passed.
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:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:L/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.