Skip to main content

MCP Java SDK EUVDEUVD-2026-101503

| CVE-2026-108395 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-14 GitHub_M
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Reach exposed MCP server transport
  2. Delivery
    Send oversized chunked POST body
  3. Exploit
    Server buffers body into heap
  4. Execution
    JVM exhausts memory
  5. Impact
    Process crashes, service unavailable

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

Exploitation requires network reachability to one of the affected server transports - the Servlet-based SSE, Streamable HTTP, or Stateless transport - accepting POST requests, running an affected version (io.modelcontextprotocol.sdk:mcp 0.8.0-0.12.0, mcp-core 0.13.0-0.18.3, 1.0.0-1.1.3, or 2.0.0-M1-2.0.0). The following explicitly LIMIT exploitation and will reject the request before the vulnerable read: enabled authentication on the transport, Origin or Host header validation, or any upstream request-size/body limit such as a reverse proxy, load balancer, or API gateway maximum-body-size setting. Consequently, an MCP server deployed behind a proxy that caps request body size, or one requiring authentication, is not practically exploitable even though the raw CVSS vector is PR:N.

Impact

The CVSS 3.1 base score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) is consistent with the description: an unauthenticated, remote, low-complexity attack with no user interaction that impacts availability only (C:N/I:N). This is a classic CWE-770 unbounded-resource-consumption denial of service - the affected Servlet-based SSE, Streamable HTTP, and Stateless transports read an HTTP POST body into heap memory without a size cap, so a single large or chunked request can OOM the JVM. No EPSS score was provided in the input, the CVE is NOT on CISA KEV, and no public exploit (POC) is referenced, so the real-world exploitation signal is currently absent - this is a high-CVSS issue whose practical priority depends heavily on exposure. Crucially, the vulnerable read only triggers if the transport is directly reachable AND not already protected: the description explicitly states that authentication, Origin/Host validation, or any upstream request-size limit (e.g., a reverse proxy or API gateway) rejects the request before the vulnerable read. Therefore, despite the PR:N vector, many production deployments fronted by a proxy with body limits are effectively not exploitable, which argues for prioritizing internet-exposed, unproxied MCP server instances over blanket emergency patching.

Exploit ScenarioDerived

An attacker who can reach an exposed MCP Java SDK server transport (Servlet SSE, Streamable HTTP, or Stateless) sends a single HTTP POST with an arbitrarily large or chunked-transfer-encoded body to the transport endpoint. The server reads the entire body into memory without a size limit, exhausting the JVM heap and crashing or hanging the process, denying service to all MCP clients. No authentication is required and no public exploit code is referenced, but the trivial nature of the request makes weaponization straightforward.

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

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

Alert me

AnalysisAIv1 – Oct 14, 2026

Unbounded HTTP request-body buffering in the Model Context Protocol (MCP) Java SDK lets an unauthenticated remote client exhaust the JVM heap and render an MCP server unavailable. The flaw affects the Servlet-based SSE, Streamable HTTP, and Stateless server transports in io.modelcontextprotocol.sdk:mcp 0.8.0-0.12.0, mcp-core 0.13.0-0.18.3, 1.0.0-1.1.3, and 2.0.0-M1-2.0.0; a client simply streams an arbitrarily large POST body (including via chunked transfer encoding) until OutOfMemory conditions make the process unresponsive. Rated CVSS 3.1 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) and affecting availability only, the impact is materially reduced for deployments that require authentication, enforce Origin/Host validation, or sit behind a reverse proxy, load balancer, or API gateway with a maximum-body-size limit, all of which reject the oversized request before the vulnerable read; no public exploit code and no confirmed active exploitation were identified at time of analysis.

RemediationAI

Upgrade to the fixed release for your maintenance line: Vendor-released patch: mcp-core 0.18.4 for the 0.13.0-0.18.3 branch, mcp-core 1.1.4 for the 1.0.0-1.1.3 branch, and mcp-core 2.0.1 for the 2.0.0-M1-2.0.0 branch (release notes at https://github.com/modelcontextprotocol/java-sdk/releases/tag/v0.18.4, .../v1.1.4, and .../v2.0.1; advisory at https://github.com/modelcontextprotocol/java-sdk/security/advisories/GHSA-4x8c-5vv7-973f). Users of the retired legacy 'mcp' artifact 0.8.0-0.12.0 are on an unmaintained line and should migrate to a maintained mcp-core release, since no fixed 0.12.x build was published. If immediate upgrades are not possible, apply the compensating controls the advisory itself names, understanding their trade-offs: impose a hard maximum request body size at the edge (reverse proxy, load balancer, or API gateway, e.g. nginx client_max_body_size, which also defeats chunked-transfer bypasses when configured at the connection level) - this can break legitimate large MCP payloads such as big tool arguments or resource uploads, so size the limit against real traffic; enable authentication on the MCP transport, which rejects unauthenticated callers before the vulnerable read but adds credential management overhead and changes the trust model; and enforce Origin and Host header validation, which blocks cross-origin and DNS-rebinding-style abuse but may break legitimate non-browser clients with unusual Host headers. Each of these controls rejects the oversized request before the unbounded read occurs; none of them fixes the underlying code, so patching remains the primary remediation.

Affected VersionsENISA

io.modelcontextprotocol.sdk:mcp-core 2.0.0-M1, < 2.0.1
io.modelcontextprotocol.sdk:mcp-core 1.0.0, < 1.1.4
io.modelcontextprotocol.sdk:mcp 0.8.0, < 0.13.0
io.modelcontextprotocol.sdk:mcp-core 0.13.0, < 0.18.4

Affected Packages

euvd io_modelcontextprotocol_sdk_mcp fix: 0.13.0
euvd io_modelcontextprotocol_sdk_mcp_core fix: 0.18.4, 1.1.4, 2.0.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in euvd

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

Technical ContextAI · show details

The affected code lives in the servlet-based transports of the official Java implementation of the Model Context Protocol - the JSON-RPC-style protocol used to connect LLM clients with tools, resources, and prompt servers. The SDK's HttpServletSseServerTransport, Streamable HTTP transport, and Stateless transport read the incoming POST entity directly into memory (via the Jakarta Servlet API, with reactor-core and Jackson on the classpath) without checking Content-Length or enforcing any byte ceiling, and without guarding against chunked transfer encoding where no Content-Length is advertised at all. This is the classic CWE-770 (Allocation of Resources Without Limits or Throttling) failure: because each request can allocate unbounded memory, a single unauthenticated connection can grow the heap until garbage collection thrashes and the JVM throws OutOfMemoryError, taking down every other request the server is handling - a low-complexity, low-volume denial of service requiring no credentials and no user interaction. The CPEs (cpe:2.3:a:modelcontextprotocol:io.modelcontextprotocol.sdk:mcp and ...:mcp-core) confirm both the legacy single-artifact 'mcp' module and the later refactored 'mcp-core' module are in scope, since the transport code was migrated into mcp-core starting with the 0.13.0 line.

Know when Java 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_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Unauthenticated remote client can send an oversized body over the network (AV:N/AC:L/PR:N/UI:N) causing heap exhaustion; availability-only impact (A:H) with no confidentiality or integrity effect.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
Patch available
Oct 14, 2026 - 19:35 EUVD
CVE Published
Oct 14, 2026 - 17:46 cve.org
HIGH 7.5

DescriptionCVE.org

The Model Context Protocol Java SDK is the official Java SDK for Model Context Protocol servers and clients. From version 0.8.0 through 0.12.0 in the io.modelcontextprotocol.sdk:mcp artifact, from 0.13.0 through 0.18.3 and 1.0.0 through 1.1.3 in io.modelcontextprotocol.sdk:mcp-core, and from mcp-core 2.0.0-M1 through 2.0.0, the Servlet-based SSE, Streamable HTTP, and Stateless server transports read an HTTP request body into memory without enforcing a maximum size. An unauthenticated remote client able to reach an affected transport can stream an arbitrarily large POST body, including with chunked transfer encoding, until the Java process exhausts its heap and becomes unavailable. Authentication, Origin or Host validation, or an upstream request-size limit can reject the request before the vulnerable read. The maintained mcp-core lines are fixed in versions 0.18.4, 1.1.4, and 2.0.1.

Technical POC Analysis

Evidence base: GitHub advisory GHSA-4x8c-5vv7-973f only.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Organizations running Model Context Protocol (MCP) servers built on the affected Java SDK versions face a high-severity availability risk: an unauthenticated attacker can exhaust server memory and take those services offline. Leadership should care because this can disrupt any AI or agent-based workflows that depend on MCP connectivity, and while no public exploit identified at time of analysis, the low attack complexity and lack of authentication make it a credible threat. Deployments already protected by authentication or edge request-size limits are materially less exposed.

Business Impact: High
Compensating Controls

No vendor patch available; enforce strict maximum request body size limits at reverse proxy, load balancer, or API gateway, require authentication, and implement Origin/Host validation.

Threat Intelligence Overview

EPSS Score
0.6%
Top 52% exploitable
Prevalence
Low
emerging AI integration SDK, Java subset of MCP ecosystem
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.6%
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +38
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.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

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