CVE-2026-67430

MCP Ruby SDK: Unbounded session retention in StreamableHTTPTransport allows memory exhaustion via initialize flood

Published Jul 29, 2026 CVSS 3.1 · 5.3 Medium EPSS < 1% KEV · Not listed
Description
MCP Ruby SDK is the official Ruby SDK for Model Context Protocol servers and clients. Prior to 0.23.0, MCP::Server::Transports::StreamableHTTPTransport in the mcp gem does not expire sessions by default, so repeated initialize requests retain unbounded ServerSession objects and can exhaust process memory. This issue is fixed in version 0.23.0.

Analysis

AI-generated

Technical impact

The MCP Ruby SDK’s StreamableHTTPTransport fails to expire sessions, letting repeated initialize requests accumulate ServerSession objects without limit. The result is a memory leak that can deplete process memory, potentially causing crashes or denial of service. The weakness is a classic memory management flaw mapped to CWE‑401 and an allocation size flaw, CWE‑770.

Affected Systems

Vendors: ModelContextProtocol’s Ruby SDK. Product: MCP Ruby SDK. Versions before 0.23.0 are impacted. The issue is fixed in release v0.23.0.

Risk and Exploitability

The CVSS score of 5.3 indicates moderate impact. The EPSS value of <1% means the probability of exploitation is currently very low, and the vulnerability is not recorded in CISA’s KEV catalog. Attackers could trigger the problem by issuing a flood of initialize calls over the HTTP interface, which suggests a remote HTTP-based vector, though the description does not explicitly certify the attack surface.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the MCP Ruby SDK to version 0.23.0 or later where the session expiration bug is fixed.
  • If an upgrade is not immediately possible, configure the StreamableHTTPTransport component to enforce session lifetimes or enable any available automatic expiration logic.
  • Apply rate‑limiting or firewall rules to restrict the number of initialize requests per client or per time window, reducing the risk of memory exhaustion by limiting the attacker’s ability to flood the service.

Generated by OpenCVE AI on August 3, 2026 at 12:55 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-52jp-gj8w-j6xh MCP Ruby SDK: Unbounded session retention in StreamableHTTPTransport allows memory exhaustion via initialize flood
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Modelcontextprotocol
Modelcontextprotocol ruby-sdk
Vendors & Products Modelcontextprotocol
Modelcontextprotocol ruby-sdk
Type Values Removed Values Added
Description MCP Ruby SDK is the official Ruby SDK for Model Context Protocol servers and clients. Prior to 0.23.0, MCP::Server::Transports::StreamableHTTPTransport in the mcp gem does not expire sessions by default, so repeated initialize requests retain unbounded ServerSession objects and can exhaust process memory. This issue is fixed in version 0.23.0.
Title MCP Ruby SDK: Unbounded session retention in StreamableHTTPTransport allows memory exhaustion via initialize flood
Weaknesses CWE-401
CWE-770
References
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L'}

Weaknesses
  • CWE-401

    Missing Release of Memory after Effective Lifetime

  • CWE-770

    Allocation of Resources Without Limits or Throttling

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jul 30, 2026, 3:19 PM
Reserved
Jul 29, 2026, 3:07 PM
Status
Deferred
Published
Jul 29, 2026, 8:17 PM
Modified
Oct 24, 2026, 1:10 PM