CVE-2026-121750
nvm install --offline installs a cached tarball that previously failed checksum verification
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.
Fixes and workarounds
Fix
Upgrade to nvm 0.41.0 or later, which removes an archive that fails verification instead of caching it.
Source: CNA: harboristWorkaround
Until upgrading, after any "Checksums do not match" error, run `nvm cache clear` before using `nvm install --offline`.
Source: CNA: harboristFix
The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches.
Source: CNA: harboristAffected products and versions
| Product | Versions | Authority |
|---|---|---|
| nvm nvm-sh |
≥ 0.40.5; < 0.41.0 (affected, semver)
Other versions: unaffected |
CNA: harborist |
Version ranges are source assertions. Check the vendor advisory and your installed configuration before determining exposure.
CVSS assessments
| Version / score | Vector | Authority |
|---|---|---|
| 4.0 / 2.1 low |
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 | CNA: harborist |
| 3.1 / 3.1 low |
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N | CNA: harborist |
Exploit evidence
No exploit evidence in collected sources. This is not proof of no exploitation.
References
- https://github.com/nvm-sh/nvm/security/advisories/GHSA-262q-c465-prmrCNA: harborist · vendor-advisory
- https://github.com/nvm-sh/nvm/commit/1f99e4c20bb92c5737b92512446acf8e303b1eddCNA: harborist · patch
For agents and automation
Read public disclosures for free as Markdown or JSON. Compatible browsers also expose native WebMCP tools to search disclosures, read this page, and discover API access.
Use the ontology-linked Cyber API with x402 pay per request, or a Y2 Pro or Elite API key with the intel:cyber scope.
Endpoints and access details
https://api.y2.dev/api/v2/cyber/cveshttps://api.y2.dev/api/v2/cyber/cves/{cveId}
A workspace owner or admin can create a Pro or Elite API key. Send Authorization: Bearer <Y2_API_KEY> from your trusted agent runtime.
For x402, omit Authorization and read the HTTP 402 payment challenge before signing a retry. Public browser tools do not make payments.