{"id":"CVE-2026-121750","published":"2026-11-04T22:17:54.873","lastModified":"2026-11-04T22:17:54.873","description":"Node 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.","cvssScore":3.1,"cvssSeverity":"LOW","cvssVector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N","cwes":["CWE-459","CWE-494"],"vendors":[],"products":[],"references":[{"url":"https://github.com/nvm-sh/nvm/commit/1f99e4c20bb92c5737b92512446acf8e303b1edd","tags":[]},{"url":"https://github.com/nvm-sh/nvm/security/advisories/GHSA-262q-c465-prmr","tags":[]}],"exploitRefs":[{"url":"https://github.com/nvm-sh/nvm/commit/1f99e4c20bb92c5737b92512446acf8e303b1edd","tags":[]},{"url":"https://github.com/nvm-sh/nvm/security/advisories/GHSA-262q-c465-prmr","tags":[]}],"hasPoc":true,"ai":null}