Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2026-81092

Опубликовано: 27 авг. 2026
Источник: redhat
CVSS3: 6.8
EPSS Низкий

Описание

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.

A flaw was found in mcp-go. This component failed to validate the Host header in HTTP requests, specifically within its StreamableHTTPServer and SSEServer transports. A remote attacker could exploit this by using a crafted web page to perform a DNS rebinding attack. This allows the attacker to direct a controlled domain name to the loopback address, bypassing local network restrictions. Consequently, the attacker could access and interact with local services and resources, potentially leading to information disclosure or unauthorized actions.

Отчет

DNS rebinding requires a web browser executing JavaScript to run on the same host as the mcp-go HTTP server, with the user visiting a malicious page during that window. Red Hat products carrying this dependency are containerized server-side services (tempo, mcp-gateway) and CLI tools (rhai-cli) deployed in Kubernetes/OpenShift environments. In those deployments no browser shares the loopback interface with the affected service, so the preconditions for exploitation are not met. The high confidentiality and integrity scores in the CVSS vector reflect what a running mcp-go server can expose if the attack succeeds; in Red Hat deployments the co-located browser condition does not arise in normal operations.

Меры по смягчению последствий

Where an immediate update to mcp-go v0.56.0 is not possible: restrict inbound connections to known trusted clients via network policy or firewall rules, and place a reverse proxy in front of the MCP endpoint that enforces strict Host header validation.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Red Hat Connectivity Link 1rhcl-tech-preview/mcp-gateway-rhel9Fix deferred
Red Hat Connectivity Link 1rhcl-tech-preview/mcp-gateway-rhel9-operatorFix deferred
Red Hat OpenShift AI (RHOAI)rhoai/rhai-cli-rhel9Fix deferred
Red Hat OpenShift distributed tracing 3rhosdt/tempo-query-rhel9Fix deferred
Red Hat OpenShift distributed tracing 3rhosdt/tempo-rhel9Fix deferred
Red Hat Hardened Imagestempo3-0-main-3.0.3-0.1.hum1FixedRHSA-2026:5487414.08.2026
Red Hat Hardened Imagestempo2-10-main-2.10.8-0.2.hum1FixedRHSA-2026:6252702.09.2026
Red Hat Hardened Imagestempo3-0-main-3.0.3-0.2.hum1FixedRHSA-2026:6253702.09.2026

Показывать по

Дополнительная информация

Статус:

Moderate
Дефект:
CWE-918
https://bugzilla.redhat.com/show_bug.cgi?id=2525106github.com/mark3labs/mcp-go: mcp-go: DNS Rebinding vulnerability due to missing Host header validation

EPSS

Процентиль: 6%
0.00165
Низкий

6.8 Medium

CVSS3

Связанные уязвимости

CVSS3: 6.8
nvd
20 дней назад

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.

CVSS3: 6.8
github
20 дней назад

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.

EPSS

Процентиль: 6%
0.00165
Низкий

6.8 Medium

CVSS3