highAgent ThreatResource Exhaustion

MCP Ruby SDK Unbounded JSON-RPC Body Read (StreamableHTTPTransport DoS)

First seen Jul 30, 2026 · Updated Jul 30, 2026 · CVSS 7.5

MCPruby-sdkdenial-of-servicememory-exhaustionunauthenticatedstreamable-httpASI05 · Unsafe Code ExecutionSurface: ProtocolPropagation: Single Hop

The official MCP Ruby SDK contained a flaw where its HTTP transport read entire JSON-RPC request bodies into memory without any size limit. An unauthenticated remote attacker could send oversized POST requests to exhaust server memory and crash the MCP server, disrupting all agents relying on it. This is fixed in version 0.23.0.

Technical Analysis

MCP::Server::Transports::StreamableHTTPTransport parses incoming JSON-RPC POST bodies fully before validation, with no configured maximum payload size or streaming size check. An attacker with network access to the endpoint can send arbitrarily large request bodies repeatedly, causing the Ruby process to allocate excessive memory and eventually crash or become unresponsive (OOM). Because MCP servers often mediate tool access for multiple downstream agents, taking down the transport layer causes a cascading availability failure across all connected agent clients. No authentication is required to trigger the condition, making this exploitable directly over the network wherever the transport is exposed.

Affected Systems

mcp (Ruby gem), MCP Ruby SDK; protocols: MCP

Detection Signatures

  • Unusually large Content-Length headers on JSON-RPC POST requests to MCP endpoints
  • Spikes in server memory usage correlated with inbound HTTP POST traffic
  • Repeated large POST bodies from a single source IP without corresponding valid JSON-RPC responses
  • Process restarts/OOM kills on mcp gem-based servers coinciding with unusual traffic patterns

Remediation Steps

  1. 1

    Upgrade the mcp gem

    Update to mcp Ruby SDK version 0.23.0 or later, which enforces request body size limits.

  2. 2

    Add reverse proxy limits

    Configure a front-end proxy (nginx, Envoy, etc.) to enforce maximum request body size before traffic reaches the MCP server.

  3. 3

    Rate limit and authenticate

    Require authentication for MCP endpoints and apply rate limiting/connection throttling to reduce exposure to unauthenticated flood attacks.

  4. 4

    Monitor resource usage

    Add memory and request-size monitoring/alerting for MCP server processes to detect exhaustion attempts early.

CVE / Advisory IDs

CVE-2026-67432

Industries Most Exposed

softwarecloud servicesAI/ML infrastructuretechnology

Sources

Respond to this threat

Pro subscribers get a full AI-generated incident-response playbook for this threat — detection, containment, eradication, and recovery steps — plus an unlimited AI Threat Advisor for questions about your environment.