Skip to main content

MCP TypeScript SDK EUVDEUVD-2025-200274

| CVE-2025-66414 HIGH
Initialization of a Resource with an Insecure Default (CWE-1188)
2025-12-02 security-advisories@github.com GHSA-w48q-cv73-mx4w
7.6
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Lure victim to attacker-controlled website
  2. Delivery
    DNS rebinds attacker origin to 127.0.0.1
  3. Exploit
    Browser bypasses same-origin policy
  4. Execution
    Send requests to local MCP server
  5. Impact
    Invoke tools and access exposed resources

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2021 - Vulnerable and Outdated Components
ASVS 5.0
V13 - Configuration Secure default settings
Exploitation Conditions

Exploitation requires ALL of: (1) an MCP server using an HTTP-based transport - specifically StreamableHTTPServerTransport or SSEServerTransport (stdio transport is NOT affected); (2) that server bound to localhost; (3) the server running WITHOUT authentication; (4) enableDnsRebindingProtection left at its insecure default (disabled); and (5) the victim visiting an attacker-controlled website in a browser on the same host, which performs DNS rebinding to defeat the same-origin policy. Limiting factors that reduce realistic risk: the required user interaction of visiting a malicious page (UI:P), the attack-requirement of a functioning DNS rebinding setup (AT:P), the fact that stdio-based and authenticated servers are unaffected, and the vendor's explicit guidance that running unauthenticated HTTP MCP servers on localhost is against MCP security best practices - i.e., the vulnerable configuration is non-default and discouraged.

Impact

Signals conflict in a way that lowers real-world priority well below what the 7.6 'High' CVSS 4.0 base score suggests. The high score is driven by VC:H/VI:H (an attacker can invoke tools and read resources), but it is explicitly gated by AT:P (a specific attack requirement - a working DNS rebinding setup) and UI:P (the victim must be lured to a malicious website), and the vulnerable condition is a deployment the vendor explicitly discourages: an unauthenticated HTTP-based MCP server bound to localhost. The EPSS score is only 0.03% (8th percentile), indicating very low predicted exploitation likelihood, and the vulnerability is NOT in CISA KEV and has no public exploit identified - all consistent with this being a defense-in-depth hardening of an insecure default (CWE-1188) rather than an urgent, broadly-exploitable flaw. The CVSS vector (AV:N) and description agree that exploitation is browser-driven over the network, so there is no network-vs-local conflict. Net assessment: a legitimate but conditional issue; prioritize patching only where unauthenticated HTTP/SSE MCP servers are actually run on localhost, otherwise treat as low-urgency hygiene.

Exploit ScenarioDerived

A developer runs an MCP server locally over HTTP (StreamableHTTPServerTransport or SSEServerTransport) without authentication and without enabling DNS rebinding protection. While that server is running, the developer visits a malicious web page, which uses DNS rebinding to make the browser treat the attacker's origin as localhost, bypassing the same-origin policy and sending requests to the local MCP server to invoke its tools or read its resources on the user's behalf. No public exploit code is identified at time of analysis, and exploitation requires the victim to visit the attacker's site (UI:P) plus a functioning rebinding setup (AT:P).

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

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

Alert me

AnalysisAIv2 – Oct 18, 2026

DNS rebinding against localhost-bound MCP TypeScript SDK servers (npm @modelcontextprotocol/sdk prior to 1.24.0) lets a malicious website bypass the browser same-origin policy and drive an unauthenticated MCP server on the user's machine, invoking exposed tools and reading resources on the victim's behalf. The flaw only materialises when an HTTP-based transport (StreamableHTTPServerTransport or SSEServerTransport) is bound to localhost, runs without authentication, and leaves enableDnsRebindingProtection at its insecure default; stdio-based and authenticated servers are unaffected, and the vendor notes that unauthenticated local HTTP servers violate MCP security best practices. The assessed vector is unauthenticated but requires the victim to visit an attacker-controlled page and a working DNS rebinding setup (CVSS 3.1 AV:N/AC:H/PR:N/UI:R, C:H/I:H/A:N), exploitation is not confirmed in the wild, no public exploit code was identified at time of analysis, and EPSS is only 0.03% (8th percentile).

Earlier versions of this analysis (1)
v1 Mar 15, 2026 - 14:04 CVSS 8.1

MCP TypeScript SDK is the official TypeScript SDK for Model Context Protocol servers and clients. Prior to 1.24.0, The Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protect

RemediationAI

Vendor-released patch: upgrade to @modelcontextprotocol/sdk 1.24.0 or later, which flips the default to protection-on for localhost bindings via createMcpExpressApp() and exports hostHeaderValidation() (patch commit 09623e2aa5044f9e9da62c73d820a8250b9d97ed, PR 1205, advisory https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-w48q-cv73-mx4w). Upgrading alone is insufficient for custom Express apps: replace hand-rolled express() + cors({origin:'*'}) setups with createMcpExpressApp(), or mount hostHeaderValidation(['localhost','127.0.0.1']) on the MCP route, or set enableDnsRebindingProtection: true together with an allowedHosts list on the transport. The trade-off of the allowlist is that legitimate access through alternate hostnames, reverse proxies, container names, or tunnels such as ngrok will start returning rejections until those hostnames are added, so inventory entry points before rolling it out. Where upgrading is not immediately possible, switch the server to stdio transport (removes the HTTP surface entirely but changes the client integration model), require authentication on the MCP endpoint, or bind nothing but loopback and instruct users not to keep such servers running while browsing; note that network firewalling does not help since the attack originates from the local browser itself. No vendor-released patch status caveats apply here - the fix version is confirmed at 1.24.0.

Affected VersionsENISA

typescript-sdk < 1.24.0

Affected Packages

npm @modelcontextprotocol/sdk fix: 1.24.0
euvd typescript_sdk fix: 1.24.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

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

Technical ContextAI · show details

The MCP TypeScript SDK is the official Node/TypeScript implementation of Model Context Protocol servers and clients, commonly layered on Express with the StreamableHTTPServerTransport or SSEServerTransport classes. Per CWE-1188 (insecure default initialization of a resource), the SDK shipped with enableDnsRebindingProtection disabled, so HTTP transports accepted requests on whatever Host header arrived. In a DNS rebinding attack the victim's browser resolves an attacker-controlled domain to 127.0.0.1 after the DNS TTL expires, so the page's scripts can issue same-origin requests to the locally running MCP endpoint and act as an authenticated-looking client despite the server never exposing itself to the network. The upstream fix introduces createMcpExpressApp(), which auto-enables host-header validation when bound to 127.0.0.1 or localhost (but intentionally not when binding 0.0.0.0), and exports a standalone hostHeaderValidation() middleware for custom Express setups; the commit also rewrites the bundled server examples to drop wide-open CORS (origin '*') and adopt the protected app factory. Because the fix is a middleware/default change rather than a sanitisation fix in the transport itself, applications that construct their own Express app and call the transports directly remain exposed even after upgrading unless they add the middleware or set the transport option explicitly. Servers using stdio transport share no HTTP surface and are out of scope.

Know when Mcp Typescript Sdk 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 (github) PRIMARY 7.6 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.8 MEDIUM

Browser-driven so AV:N; DNS rebinding setup makes AC:H; the localhost server is unauthenticated so PR:N; victim must visit a malicious site so UI:R; tool/resource access gives C:H/I:H, no availability impact.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

Lifecycle Timeline

4
Analysis Updated
Oct 18, 2026 - 18:31 vuln.today
v2 - CVSS changed
CVSS changed
Oct 18, 2026 - 18:22 NVD
8.1 (HIGH) 7.6 (HIGH)
Patch released
Mar 15, 2026 - 14:04 nvd
Patch available
CVE Published
Dec 02, 2025 - 19:15 nvd
HIGH 8.1

DescriptionCVE.org

MCP TypeScript SDK is the official TypeScript SDK for Model Context Protocol servers and clients. Prior to 1.24.0, The Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default for HTTP-based servers. When an HTTP-based MCP server is run on localhost without authentication with StreamableHTTPServerTransport or SSEServerTransport and has not enabled enableDnsRebindingProtection, a malicious website could exploit DNS rebinding to bypass same-origin policy restrictions and send requests to the local MCP server. This could allow an attacker to invoke tools or access resources exposed by the MCP server on behalf of the user in those limited circumstances. Note that running HTTP-based MCP servers locally without authentication is not recommended per MCP security best practices. This issue does not affect servers using stdio transport. This vulnerability is fixed in 1.24.0.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 42 npm packages depend on @modelcontextprotocol/sdk (34 direct, 9 indirect)

Ecosystem-wide dependent count for version 1.24.0.

Executive ViewAI

Why It Matters

The MCP TypeScript SDK (@modelcontextprotocol/sdk) before version 1.24.0 contains a high-severity flaw that can let a malicious website interact with an unauthenticated local MCP server on a developer's machine, potentially invoking exposed tools and reading local resources. The issue affects organizations running HTTP-based MCP servers bound to localhost without authentication and with default DNS rebinding protection; stdio-based and authenticated servers are unaffected. Leadership should prioritize remediation because developer endpoints may hold sensitive access, although exploitation requires a victim to visit an attacker-controlled page and a working DNS rebinding setup, and no public exploit identified at time of analysis.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.0%
Top 92% exploitable
Prevalence
Medium
widely adopted MCP SDK in AI tooling, not ubiquitous infrastructure
Data Quality
5 sources
Confidence: Medium

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.0%
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

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

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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