Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker registers domain with short TTL
-
DeliveryDNS record rebound to 127.0.0.1 after victim resolves it
-
ExploitVictim visits attacker's malicious web page
-
ExecutionBrowser sends HTTP request to 127.0.0.1 with attacker domain as Host header
-
Persistmcp-go accepts request without Host validation
-
ImpactAttacker's JavaScript invokes MCP tools and exfiltrates exposed resources
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
|
| Exploitation Conditions | Two simultaneous conditions are required: the victim must be running an mcp-go server (version before 0.56.0) bound to a loopback address (127.0.0.1 or ::1), and the victim must visit an attacker-controlled web page in a browser. The attacker must also complete a DNS rebinding maneuver - resolving their domain to 127.0.0.1 in the victim's browser by exploiting short DNS TTLs or browser DNS-pinning weaknesses - which is represented as AT:P in the CVSS 4.0 vector and is the primary attack complexity constraint. The SSE transport's permissive CORS default removes one additional browser-level barrier for that transport specifically. No authentication to the mcp-go server is required (PR:N), but a server must be actively running and exposing tools or resources. Exploitation is browser-mediated only; direct network connections from non-loopback addresses are not affected, and the vulnerability does not apply when the server is bound to a non-loopback interface. |
| Impact | The CVSS 4.0 score of 7.6 reflects AT:P (attack requirement: victim must be running mcp-go locally) and UI:P (victim must visit a malicious page), which meaningfully constrain real-world exploitation compared to fully automated network-vector attacks. No EPSS data was provided in the input, so exploitation probability cannot be quantified from this dataset. There is no CISA KEV listing and no public exploit has been identified, reducing urgency compared to actively exploited issues. That said, MCP servers are disproportionately deployed on developer workstations and CI/CD hosts where the attack surface is real - MCP tools routinely expose file reads, shell execution, and credential access, making the high confidentiality and integrity impact ratings (VC:H, VI:H) credible rather than theoretical. Teams running mcp-go-based servers in local development environments should treat this as a priority patch, particularly given that the fix is a simple version bump with no API-breaking changes. |
| Exploit ScenarioDerived | An attacker registers a domain that briefly resolves to 127.0.0.1 through a DNS rebinding maneuver - exploiting short TTLs or DNS pinning bypasses - then serves a page that the victim developer visits while an mcp-go server is running locally. The page's JavaScript issues requests to the local MCP server with the attacker's domain as the Host header; without Host validation, the server accepts them, allowing the attacker's page to enumerate and invoke MCP tools (potentially reading local files, executing shell commands, or accessing credentials) entirely from within the browser. No public exploit code has been identified, but standard DNS rebinding toolkits provide ready infrastructure for this attack pattern. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 27, 2026
DNS rebinding in mcp-go before 0.56.0 allows a malicious webpage to bypass localhost isolation and invoke tools or read resources on a victim's locally-running MCP server. Both StreamableHTTPServer and SSEServer accepted loopback connections without validating the Host header, and the SSE transport's permissive default CORS policy removed an additional browser-level barrier. No public exploit has been identified and no CISA KEV listing exists, but the attack is practical for any developer running an affected server while browsing the web.
RemediationAI
Upgrade mcp-go to version 0.56.0 or later, which is the vendor-released patch confirming the fix. The update introduces server/http_localhost.go, which rejects loopback-bound requests carrying a non-loopback Host header with HTTP 403, protecting both StreamableHTTPServer and SSEServer automatically without configuration changes. If an immediate upgrade is not possible, a compensating control for deployments behind a reverse proxy forwarding via localhost is to configure the proxy to rewrite the Host header to 'localhost' before forwarding - failure to do so will cause legitimate proxy traffic to be blocked once the patch is applied. Operators who must explicitly opt out of the protection (not recommended) can pass server.WithDisableLocalhostProtection(true) to NewStreamableHTTPServer or server.WithSSEDisableLocalhostProtection(true) to NewSSEServer. There are no known workarounds that address the vulnerability in versions before 0.56.0 without upgrading. Advisory and release details are at https://github.com/mark3labs/mcp-go/releases/tag/v0.56.0 and https://www.vulncheck.com/advisories/mcp-go-before-0.56.0-missing-host-header-validation-enables-dns-rebinding.
Affected VersionsENISA
Affected Packages
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
mcp-go (CPE: cpe:2.3:a:mark3labs:mcp-go:*:*:*:*:*:*:*:*) is a Go implementation of the Model Context Protocol, exposing AI tools and resources over two HTTP transports: StreamableHTTPServer (server/streamable_http.go) and SSEServer (server/sse.go). The root cause is CWE-346 (Origin Validation Error): both ServeHTTP handlers accepted any request arriving over a loopback connection regardless of the Host header's value. DNS rebinding exploits this by having an attacker-controlled domain temporarily resolve to 127.0.0.1 in the victim's browser; subsequent browser requests carry the attacker's domain as the Host header but physically reach the local server, which previously applied no check. The SSE transport compounded exposure by defaulting to a permissive CORS policy (any origin allowed), eliminating the browser same-origin protection that would otherwise limit cross-origin reads. The fix in v0.56.0 introduces server/http_localhost.go, which inspects the connection's local address at runtime and rejects loopback-bound requests whose Host header is not a recognized loopback value (localhost, 127.x.x.x, ::1) with HTTP 403.
Know when Mcp Go 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:N/SC:N/SI:N/SA:N
DNS rebinding requires timing-dependent TTL expiry and browser behavior (AC:H); no server-side authentication needed (PR:N); victim must visit a malicious page (UI:R); no availability impact.
AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
mcp-go accepted requests on its HTTP transports without checking the Host header. StreamableHTTPServer.ServeHTTP in server/streamable_http.go and SSEServer.ServeHTTP in server/sse.go served any request arriving over a loopback connection regardless of the host it named, and the SSE transport's cross-origin default allowed any origin. A page in a browser could therefore point a name it controlled at the loopback address and reach a server listening there, invoking tools and reading resources that the server exposed on the assumption that only local software could connect. No release before 0.56.0 validated the header on either transport; 0.56.0 adds server/http_localhost.go, which rejects a loopback-bound request carrying a host that is not a loopback name, and wires it into both transports.
Executive ViewAI
mcp-go versions before 0.56.0 are vulnerable to DNS rebinding attacks that allow malicious webpages to bypass localhost isolation and invoke tools or read resources on developers' locally-running MCP servers. This affects any developer using the affected protocol implementation while web browsing, potentially exposing development environments and integrated MCP tooling to compromise. Organizations running this component should immediately identify affected systems and implement interim isolation controls.
No vendor-released patch identified at time of analysis. Interim mitigations include: (1) restrict developer network access to trusted websites during MCP server operation; (2) implement Host header validation at the application level; (3) disable SSE transport if not operationally required; (4) enforce network segmentation for development MCP server infrastructure; (5) require browser sandboxing for development workflows involving MCP tools.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Same weakness CWE-346 – Origin Validation Error
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Micro 6.2 | Affected |
| openSUSE Leap 16.0 | Affected |
EUVD-2026-67147
GHSA-8g5x-gj7x-mxgm
NVD
CVE.org
EPSS
Exploit-DB