CVE-2026-67431
HighCVSS 8.3Exploitation Probability (EPSS)
Low risk20th percentile - higher than 20% of all known CVEs
Summary
MCP Ruby SDK before version 0.23.0 does not bind a session ID to its owner, allowing an attacker with a stolen session ID to send tools/call requests in the victim's session.
Risk Assessment
An attacker can execute arbitrary tools on behalf of the victim, potentially accessing their data or performing unauthorized operations.
Recommendation
Update the mcp gem to version 0.23.0 or later.
Other vulnerabilities in MCP Ruby SDK
See all- CVE-2026-67432High
MCP Ruby SDK before version 0.23.0 in StreamableHTTPTransport reads the entire JSON-RPC POST body without size limits, allowing an unauthenticated remote attacker to exhaust process memory.
- CVE-2026-67430Medium
A vulnerability in MCP Ruby SDK before version 0.23.0 allows process memory exhaustion via unbounded creation of ServerSession objects in StreamableHTTPTransport. Sessions do not expire by default, and repeated initialize requests accumulate objects.
- CVE-2026-63119Medium
A vulnerability in MCP Ruby SDK before version 0.23.0 allows process memory exhaustion by sending data without a newline in StdioTransport and Stdio client. The IO#gets function is used without a byte limit.
- CVE-2026-63118Medium
A vulnerability in MCP Ruby SDK before version 0.23.0 allows DNS rebinding attacks due to missing validation of Host and Origin headers in StreamableHTTPTransport. A malicious web page can access a local MCP server and invoke tools.
Original NVD description (English source)
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 bind a session ID to a session owner, allowing an attacker with a stolen session ID to send tools/call requests that execute in the victim's session. This issue is fixed in version 0.23.0.

