Skip to main content

mcp-go EUVDEUVD-2026-97010

| CVE-2026-108859 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-11 VulnCheck GHSA-c673-ppxx-9wvj
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Reach exposed StreamableHTTP endpoint
  2. Delivery
    Send oversized/concurrent POST bodies
  3. Exploit
    io.ReadAll buffers body pre-validation
  4. Execution
    Server memory exhausted
  5. Impact
    OOM-kill or service degradation

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The affected mcp-go StreamableHTTPServer HTTP transport must be deployed and network-reachable by the attacker; exploitation targets the POST handler in StreamableHTTPServer.ServeHTTP that reads the full request body via io.ReadAll before validating its size. No authentication, credentials, user interaction, or non-default configuration is required (PR:N/UI:N) - any process running mcp-go through 1.2.1 and accepting POST requests on this transport is exposed. Limiting factors are deployment-dependent: the endpoint must be exposed (internal-only or non-StreamableHTTP deployments reduce exposure), and an upstream reverse proxy or load balancer enforcing a request-body size limit (e.g. client_max_body_size) or per-client rate limiting would substantially blunt the attack. Impact is availability-only; no data is read or modified.

Impact

This is a credible, moderately-high-priority availability risk but not an emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms remote, unauthenticated, low-complexity reachability against the HTTP transport, and the impact is confined to availability (VA:H; VC:N/VI:N) - consistent with CWE-770 (unbounded resource allocation) and the description's io.ReadAll-before-validation flaw. The 8.7 'High' score is driven entirely by availability, so this is a true DoS, not a data-breach or RCE issue; teams weighting confidentiality/integrity should rank it below code-execution bugs of similar score. No CISA KEV listing and no public exploit are present in the input, so there is no evidence of active exploitation - however, the bug class is trivially weaponizable (send large/many POST bodies) and a detailed third-party technical writeup (hackmd) plus a vendor advisory (VulnCheck) with a direct link to the vulnerable source lines lower the barrier to a working exploit considerably. No EPSS score was provided, so probabilistic exploitation likelihood cannot be compared; given the triviality, treat EPSS absence as a gap rather than reassurance. Net: patch promptly on any internet-exposed mcp-go StreamableHTTP deployment, but the lack of confidentiality/integrity impact and absence of confirmed exploitation justify prioritizing it below network-facing RCE.

Exploit ScenarioDerived

A remote attacker who can reach an mcp-go StreamableHTTP endpoint sends one or more POST requests with arbitrarily large bodies (or many concurrent large requests); because ServeHTTP calls io.ReadAll to buffer the entire body before any size validation, server memory balloons. Sustained or concurrent requests exhaust available memory and trigger an OOM kill or severe degradation, taking the MCP server offline for all users. No authentication, user interaction, or special timing is required, and no public exploit is identified at time of analysis though a detailed technical writeup exists.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 11, 2026

Unbounded request-body buffering in mark3labs mcp-go through 1.2.1 lets remote unauthenticated attackers exhaust server memory and OOM-kill the process by sending arbitrarily large or many concurrent POST requests to the StreamableHTTPServer HTTP transport. Because the handler calls io.ReadAll on the raw request body before any size validation occurs, a single oversized request or a modest burst of parallel requests can drive allocation without limit; no credentials or user interaction are required (CVSS:4.0 PR:N/UI:N, availability-only impact rated 8.7). There is no confirmed in-the-wild exploitation (not in CISA KEV) and no public exploit code identified at time of analysis, but the low complexity and network reachability make this a credible, moderately-high-priority availability risk for any deployment exposing the StreamableHTTP endpoint directly to untrusted networks.

RemediationAI

No vendor-released patch or fixed version is identified in the available intelligence at time of analysis; the CPE and VulnCheck advisory scope damage as 'through 1.2.1', so a remediation release may exist beyond that range but is not confirmed here. Until an upgraded mcp-go version is published and verified to bound request bodies, treat the StreamableHTTP listener as untrusted-network-facing risk and apply compensating controls: place the endpoint behind a reverse proxy or load balancer that enforces a hard request-body size limit and per-client rate limiting (for nginx, client_max_body_size with a low value such as 1-8 MB plus limit_req; for Envoy, max_request_bytes and local rate limits) - this directly caps the allocation the vulnerable io.ReadAll can perform and is the highest-value mitigation, with the trade-off that legitimate large MCP payloads above the configured ceiling will be rejected with 413 responses. Restrict network exposure by binding the StreamableHTTP transport to localhost or an internal interface and fronting it with authenticated access (mTLS, API gateway, or IP allowlisting); where the StreamableHTTP transport is not required, disable it and use stdio or another transport. Note that per-connection process memory limits (for example container memory cgroups with restart-on-OOM, or GOMEMLIMIT) do not prevent the attack but reduce blast radius by confining an OOM kill to a bounded replica rather than a shared host. Monitor for spikes in POST body size, 4xx handling of oversized requests, and container OOM-kill events as detection signals, and track the upstream repository and VulnCheck advisory for an official fix version before relying on any patch claim.

Affected VersionsENISA

mcp-go 0 ≤1.2.1

Affected Packages

euvd mcp_go no fix

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 is a Go implementation of the Model Context Protocol, and its StreamableHTTPServer transport provides an HTTP endpoint used by MCP clients to exchange JSON-RPC style messages over POST. The flaw lives in StreamableHTTPServer.ServeHTTP: the handler reads the entire request body into memory via io.ReadAll before performing any length check, content validation, or rejection, and the referenced source range (server/streamable_http.go, lines ~405-411) confirms the read is not bounded by http.MaxBytesReader or an equivalent guard. This is a classic CWE-770 (Allocation of Resources Without Limits or Throttling) condition - the server trusts the client-declared/actual payload size and allocates proportionally, so memory consumption scales linearly with attacker-supplied input and is multiplied by concurrent connections. The CPE cpe:2.3:a:mark3labs:mcp-go:*:*:*:*:*:*:*:* indicates the vendor package mark3labs/mcp-go is affected across the version range up to and including 1.2.1, with no platform or configuration constraint - any Go process embedding this library and exposing the StreamableHTTP transport is in scope.

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

Vendor (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Remote unauthenticated POST with no interaction (AV:N/AC:L/PR:N/UI:N); unbounded buffering causes availability loss only (A:H, C:N/I:N) within the same server (S:U).

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Red Hat 7.5 HIGH

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

mcp-go through 1.2.1 contains a denial of service vulnerability in StreamableHTTPServer.ServeHTTP that allows remote unauthenticated attackers to exhaust memory by sending oversized POST bodies. Attackers can send arbitrarily large or many concurrent POST requests, read fully via io.ReadAll before validation, to degrade or OOM-kill the server process.

Executive ViewAI

Why It Matters

Any internet-facing service built on the mark3labs mcp-go library (versions through 1.2.1) can be knocked offline by a single unauthenticated remote attacker, who needs only to send oversized or parallel POST requests to the StreamableHTTPServer endpoint to exhaust memory and crash the process. No credentials, user interaction, or specialized tooling are required, so the barrier to causing an outage is low even though no exploitation has been observed to date. Leadership should treat this as an availability and service-continuity exposure for any MCP deployment reachable from untrusted networks, and note that no vendor fix is currently available, leaving mitigation dependent on network and infrastructure controls.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: enforce strict request-body size limits and per-IP request/connection rate limiting at a reverse proxy or API gateway in front of the StreamableHTTP endpoint; restrict the endpoint to trusted networks via allowlisting, VPN, or mutual TLS; apply container/cgroup memory limits with liveness probes and automatic restart; where source is available, wrap the request body in http.MaxBytesReader or io.LimitReader before io.ReadAll; monitor for OOM kills and abnormal POST volume as an early warning.

Threat Intelligence Overview

EPSS Score
0.5%
Top 56% exploitable
Prevalence
Medium
popular Go MCP server library, but domain-specific and recently adopted
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.5%
Patch available No
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
Yes
Human Impact
High

Priority Score

45
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Vendor StatusVendor

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