High severity · published Jul 29, 2026
CVE-2026-67431
MCP Ruby SDK: Ruby SSE Session Poisoning
8.3
CVSS
0.4%
EPSS
No
On KEV
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 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.
Exploitation
Is it being used?
Exploit prediction (EPSS)0.4% · higher than 30% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
RU
ruby-sdk · modelcontextprotocol
< 0.23.0 · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-67431
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-67431
github.com
https://github.com/modelcontextprotocol/ruby-sdk/commit/35466605319a34e4c7808712ae9bb1ca1afb2356
github.com
https://github.com/modelcontextprotocol/ruby-sdk/releases/tag/v0.23.0
github.com
https://github.com/modelcontextprotocol/ruby-sdk/security/advisories/GHSA-5p9g-j988-pcwv
More from ruby-sdk
7.5
CVE-2026-67432
MCP Ruby SDK: Unbounded JSON-RPC request body causes uncontrolled memory allocation in StreamableHTTPTransport
6.9
CVE-2026-63118
MCP Ruby SDK: Streamable HTTP transport lacks DNS-rebinding (Host/Origin) protection
6.2
CVE-2026-63119
MCP Ruby SDK: Unbounded line buffer in stdio transports leads to memory exhaustion (DoS)
5.9
CVE-2026-33946
MCP Ruby SDK: Insufficient Session Binding Allows SSE Stream Hijacking via Session ID Replay
5.3
CVE-2026-67430
MCP Ruby SDK: Unbounded session retention in StreamableHTTPTransport allows memory exhaustion via initialize flood
