CVE-2026-108395highDenial of service2026-10-14
CVE-2026-108395: MCP Java SDK HTTP servers can be crashed with one huge request
The official MCP Java SDK’s Servlet-based HTTP transports read the whole request body into memory with no size limit. One unauthenticated chunked POST can exhaust the Java heap and take the server down.
What it is
GitHub advisory: the Streamable HTTP, Stateless and SSE server transports “buffered the entire incoming request body into memory before parsing it, with no limit on how large that body could be.”
Chunked transfer encoding gets past any Content-Length check, and a single request was enough to cause an OutOfMemoryError.
Authentication, Origin/Host checks or an upstream request-size limit can reject the request before the vulnerable read. This is the Java counterpart of the MCP Python SDK issue CVE-2026-109527.
How to check
- NVD lists io.modelcontextprotocol.sdk:mcp 0.8.0 to 0.12.0, and mcp-core 0.13.0 to 0.18.3, 1.0.0 to 1.1.3, and 2.0.0-M1 to 2.0.0 as affected.
- Only servers exposing a Servlet-based HTTP transport to unlimited network input are affected.
How to fix
- Upgrade mcp-core to 0.18.4, 1.1.4 or 2.0.1, matching your release line. The old mcp artifact (0.8.0 to 0.12.0) has no fixed release, so move to mcp-core.
- If you can’t upgrade yet, put a reverse proxy or gateway with a request body limit in front of the server.
mvn dependency:tree | grep modelcontextprotocolSources
More advisories for this tool
- criticalCVE-2026-96620: Claude Agent SDK (Python) resume option lets attackers run commands
- criticalLangflow: adding an MCP server runs any command on the host (CVE-2026-105697, CVE-2026-105740)
- criticalCVE-2026-32871: FastMCP OpenAPI Provider has an SSRF & Path Traversal Vulnerability
- criticalCVE-2025-6514: mcp-remote exposed to OS command injection via untrusted MCP server connections