Severity by source
AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Stdio transport is local IPC; peer write access requires no special privileges; only availability is impacted via unbounded memory growth.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Lifecycle Timeline
3DescriptionCVE.org
MCP Ruby SDK is the official Ruby SDK for Model Context Protocol servers and clients. Prior to 0.23.0, MCP::Server::Transports::StdioTransport and MCP::Client::Stdio in the mcp gem use IO#gets without a byte limit, allowing a peer that sends data without a newline to exhaust process memory. This issue is fixed in version 0.23.0.
AnalysisAI
Uncontrolled memory growth in the MCP Ruby SDK (mcp gem) prior to 0.23.0 allows any peer process communicating via stdio to OOM-kill the host Ruby process by sending a continuous byte stream without a newline, exhausting available system memory. Both the server-side MCP::Server::Transports::StdioTransport and client-side MCP::Client::Stdio components are affected, meaning Ruby applications acting as either MCP servers or MCP clients are vulnerable. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Exploitation requires the attacker to control or compromise a process that holds an open write end of the stdio pipe connected to the vulnerable Ruby MCP server or client - this is inherently local inter-process access, not a network-reachable condition by default. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The CVSS 6.2 score with vector AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H accurately characterizes this as a local denial-of-service with no confidentiality or integrity impact. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | A malicious or compromised MCP peer process writes a continuous stream of arbitrary bytes to the stdin of a Ruby MCP server running an unpatched mcp gem, deliberately omitting any newline character. Ruby's IO#gets accumulates this input into a single ever-growing String, eventually exhausting the host's available memory and triggering an OOM kill that terminates the MCP service entirely. … |
| Remediation | Upgrade the mcp Ruby gem to version 0.23.0 or later (https://github.com/modelcontextprotocol/ruby-sdk/releases/tag/v0.23.0), which introduces an optional max_line_bytes: keyword on both StdioTransport.new and MCP::Client::Stdio.new, defaulting to 4 MiB. … Detailed patch versions, workarounds, and compensating controls in full report. |
Threat intelligence, references, and detailed analysis are available after sign-in.
Session hijacking in the MCP Ruby SDK (mcp gem) before 0.23.0 lets an attacker who obtains a valid session ID issue tool
Uncontrolled memory allocation in the official Model Context Protocol Ruby SDK (mcp gem) before 0.23.0 lets an unauthent
DNS rebinding in MCP Ruby SDK's StreamableHTTPTransport (mcp gem, all versions prior to 0.23.0) exposes locally running
Unbounded session growth in MCP Ruby SDK's StreamableHTTPTransport allows unauthenticated remote attackers to exhaust se
Same weakness CWE-400 – Uncontrolled Resource Consumption
View allSame technique Denial Of Service
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-50500
GHSA-7683-3w9x-ch42