Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessVictim connects to malicious MCP server
-
DeliveryServer returns 401 naming crafted OAuth authorization_endpoint
-
ExploitURL with $(...) subexpression passed unescaped to open
-
Executionopen invokes powershell -EncodedCommand
-
ImpactPowerShell evaluates subexpression, arbitrary code runs as 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 | Exploitation requires all of: (1) the victim host is Windows, or WSL outside a container (the vulnerable branch is platform==='win32' || (isWsl && !isInsideContainer() && !app)) - macOS and Linux are NOT affected because there open uses spawn with an argv instead of a shell; (2) a consuming application passes an attacker-controlled URL to open - here MCP Inspector (CLI, TUI, or web) or opencode taking the OAuth authorization_endpoint from a remote server's RFC 8414 discovery response; (3) the victim connects to an MCP server the attacker operates or has compromised/typosquatted; (4) auto-open is enabled, which is the default (on unless MCP_AUTO_OPEN_ENABLED=false or Vitest is running) with stderr a TTY, i.e. an interactive developer session. Once those hold there is no further click, approval, tool invocation, or model decision - the chain fires during connection. Limiting factors for defenders: the Windows/WSL-only requirement, the need to connect to a hostile server, and that the open library alone is not exploitable without a consumer feeding it untrusted URLs. |
| Impact | This is a genuine, confirmed remote code execution flaw (CWE-78/CWE-88) in the heavily-used npm |
| Exploit ScenarioDerived | A developer on Windows or WSL uses MCP Inspector (or opencode) to connect to an untrusted remote MCP server. The server answers 401 and serves OAuth discovery documents whose attacker-chosen authorization_endpoint is a URL like https://evil.test/$([IO.File]::WriteAllText('C:\Users\Public\pwned.txt','RCE')); the client auto-opens it, |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 29, 2026
OS command injection in the npm open package (7.2.0 through 10.x) lets a remote attacker execute arbitrary PowerShell code as the invoking user on Windows and on WSL outside a container, because the target URL is interpolated unescaped into a powershell -EncodedCommand string. The flaw is only reachable through consuming applications that hand attacker-influenced URLs to open - most notably MCP Inspector up to 2.11.0 and opencode, which pass the OAuth authorization_endpoint from a remote MCP server's RFC 8414 discovery document straight to the opener, so code runs during connection with no click, approval, tool invocation, or model involvement. There is no CISA KEV entry; the GHSA advisory includes a public PoC reference that demonstrates the injection at the sink (not independently verified as working exploit code), and macOS and Linux are unaffected because open invokes open/xdg-open there via spawn with an argument vector rather than a shell.
RemediationAI
Upgrade the open dependency to 11.0.0 or later - opencode's fix pins 11.0.4 - and note that a caret range such as "open": "^10.2.0" will never resolve to 11.x, so a deliberate major bump is required and routine npm update will not pull the fix; the upstream patch escapes the target through single-quoted PowerShell literals (commit 274d70446bf38a7b7d50b214dd3962ef8ea9320d). Applications embedding the library should also move to MCP Inspector 2.12.0, which addresses GHSA-q978-78c7-phqw, and to the opencode commit 29f07e0c69ad8668e0e15b0eb54f2fcb342af98c or a release containing it. If a dependency bump cannot be staged immediately, sanitising the URL before it reaches the opener closes the sink - percent-encoding $ (for example with strict-url-sanitise, already used by mcp-remote for CVE-2025-6514 and Cherry Studio on the same OAuth path) neutralises the subexpression, at the cost of altering URLs that legitimately contain $ in path or fragment components. Setting MCP_AUTO_OPEN_ENABLED=false in Inspector stops the automatic launch path that triggers the chain during connection, with the side effect that users must copy and open OAuth URLs manually; it does not protect other consumers of open, and the remaining Windows/WSL-only and hostile-server prerequisites are the main reasons the exposure is narrower than the affected package's download volume suggests.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-78 (OS command injection), with the GitHub advisory additionally classifying it as CWE-88 argument injection. On the Windows branch (platform === 'win32', or WSL when isWsl && !isInsideContainer() && !app), open assembles an argument list, wraps options.target in plain double quotes, joins it, converts the string to base64 as UTF-16LE, and runs it via powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -EncodedCommand. PowerShell evaluates $(...) subexpressions inside double-quoted strings, so a URL containing one is executed before Start even resolves the command. Notably, the application path five lines earlier was already escaped with backticks, so escaping was understood to be necessary at that point but was applied to only one of the two arguments. A URL alone is sufficient because WHATWG URL serialisation percent-encodes only the space and double quote while preserving $, (, ), [, ], :, ,, +, & and (in path and fragment) ', so a working payload needs no encoded characters. The CVSS 4.0 vector's AT:P reflects the additional preconditions beyond the network reachability: the Windows/WSL platform, an interactive session with a TTY where MCP Inspector auto-open is enabled by default (on unless MCP_AUTO_OPEN_ENABLED=false or Vitest is running), and a connection to a server the attacker controls or has compromised. The upstream fix in v11.0.0 replaces double-quoted interpolation with a single-quoted literal helper that doubles embedded single quotes, and consumers must move off ^10.x because a caret range on 10.x never resolves to 11.x.
Know when Windows 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Remote hostile MCP server, no victim privileges (PR:N), user must connect (UI:R), Windows/WSL-only; deterministic payload (AC:L); runs as invoking user so scope unchanged (S:U).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
open 7.2.0 before 11.0.0 contains an OS command injection vulnerability that allows attackers to execute PowerShell code by supplying crafted URLs on Windows and WSL. Attackers can embed $(...) subexpressions in URLs, such as OAuth authorization_endpoint values from malicious MCP servers, which execute when index.js passes them unescaped to powershell -EncodedCommand.
Articles & Coverage 1
Technical POC Analysis
CWE-78 OS command injection in the Windows/WSL launch path of npm open.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity vulnerability in the widely used npm 'open' package affects Windows and WSL environments, allowing remote code execution when applications like MCP Inspector (≤2.11.0) and opencode process attacker-controlled OAuth endpoints from remote MCP servers. Because exploitation requires no user interaction beyond connecting to a malicious server, any development, IT, or security team using these tools on Windows is at risk of compromise, potentially leading to credential theft and lateral movement.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Unauthenticated remote code execution in SmarterTools SmarterMail lets an attacker upload arbitrary files to any locatio
Windows Win32k fails to properly handle objects in memory, allowing local privilege escalation exploited in the wild in
A privilege escalation vulnerability (CVSS 5.5). Risk factors: actively exploited (KEV-listed), EPSS 94% exploitation pr
Windows Internet Shortcut Files (.url) contain an external control vulnerability (CVE-2025-33053, CVSS 8.8) that enables
Windows SMB contains an improper access control vulnerability (CVE-2025-33073, CVSS 8.8) enabling authenticated attacker
An unrestricted file upload vulnerability exists in MiniWeb HTTP Server <= Build 300 that allows unauthenticated remote
FreeFloat FTP Server contains multiple critical design flaws that allow unauthenticated remote attackers to upload arbit
Serviio Media Server versions 1.4 through 1.8 on Windows contain an unauthenticated command injection in the /rest/actio
Mako Server versions 2.5 and 2.6 contain an unauthenticated OS command injection via the tutorial interface at examples/
React Native Metro Development Server binds to external interfaces by default and contains an OS command injection endpo
Command injection in the Windows Shell lets remote, unauthenticated attackers bypass a Windows security feature and then
External control of file name or path in Windows NTLM allows an unauthorized attacker to perform spoofing over a network
EUVD-2026-112744
GHSA-jgwm-4pmq-r4w4
NVD
CVE.org
EPSS
Exploit-DB