Description
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.
Published: 2026-08-27
Score: 7.6 High
EPSS: < 1% Very Low
KEV: No
Impact: Exposure of local services via DNS rebinding
Action: Apply Patch
AI Analysis

Impact

The vulnerability arises because mcp-go served HTTP requests on loopback interfaces without validating the Host header. Requests arriving on a loopback connection with any Host value are accepted by both the StreamableHTTPServer and SSEServer transports. A malicious web page can therefore point a controlled domain name to the loopback address, bypass the same‑origin restriction, and access services that expect only local connections. This can expose confidential data, enable unauthorized configuration changes, or potentially allow further exploitation of the local server process.

Affected Systems

Mark3 Labs mcp‑go versions earlier than 0.56.0 are affected. The 0.56.0 release introduced validation that rejects loopback requests whose Host header is not a loopback name.

Risk and Exploitability

The CVSS score of 7.6 indicates a medium‑high risk. The EPSS score of 0.00165 (<1%) indicates a very low probability of exploitation, and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector is a DNS rebinding or cross‑origin request from an external web page, which can be orchestrated over the public Internet. An attacker who can host a malicious page can send requests that target the local server, potentially exposing internal resources or enabling further compromise. The attack requires only a web browser and a controlled domain name; no privileged local access is needed, but the local service must be reachable and accept untrusted traffic.

Generated by OpenCVE AI on September 3, 2026 at 15:01 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade mcp‑go to version 0.56.0 or later, which adds Host header validation to both transports
  • If upgrading is not immediately possible, restrict inbound access to the loopback interfaces so that only trusted processes can connect
  • Monitor incoming HTTP traffic for requests with unexpected Host headers or patterns indicative of DNS rebinding

Generated by OpenCVE AI on September 3, 2026 at 15:01 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 03 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-918
References
Metrics threat_severity

None

threat_severity

Moderate


Fri, 28 Aug 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 28 Aug 2026 16:45:00 +0000

Type Values Removed Values Added
First Time appeared Mark3labs
Mark3labs mcp-go
Vendors & Products Mark3labs
Mark3labs mcp-go

Thu, 27 Aug 2026 16:45:00 +0000

Type Values Removed Values Added
Description 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.
Title mcp-go before 0.56.0 Missing Host Header Validation Enables DNS Rebinding
Weaknesses CWE-346
References
Metrics cvssV3_1

{'score': 6.8, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N'}

cvssV4_0

{'score': 7.6, 'vector': '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'}


Subscriptions

Mark3labs Mcp-go
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-29T11:48:08.125Z

Reserved: 2026-08-26T16:00:30.950Z

Link: CVE-2026-81092

cve-icon Vulnrichment

Updated: 2026-08-27T18:24:14.554Z

cve-icon NVD

Status : Received

Published: 2026-08-27T17:20:51.337

Modified: 2026-08-28T20:20:09.140

Link: CVE-2026-81092

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-27T14:50:33Z

Links: CVE-2026-81092 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-03T15:15:05Z

Weaknesses
  • CWE-346

    Origin Validation Error

  • CWE-918

    Server-Side Request Forgery (SSRF)