Medium severity · published Mar 27, 2026
CVE-2026-33946
MCP Ruby SDK: Insufficient Session Binding Allows SSE Stream Hijacking via Session ID Replay
5.9
CVSS
0.5%
EPSS
No
On KEV
Description
MCP Ruby SDK is the official Ruby SDK for Model Context Protocol servers and clients. Prior to version 0.9.2, the Ruby SDK's streamable_http_transport.rb implementation contains a session hijacking vulnerability. An attacker who obtains a valid session ID can completely hijack the victim's Server-Sent Events (SSE) stream and intercept all real-time data. Version 0.9.2 contains a patch.
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Attack vector
Network
Complexity
High
Privileges
None
User interaction
None
Confidentiality
High
Integrity
None
Availability
None
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.5% · higher than 41% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
RU
ruby-sdk · modelcontextprotocol
< 0.9.2 · source: vendor
MR
Mcp Ruby Sdk · Lfprojects
before 0.9.2 · source: NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-33946
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-33946
Patch
https://github.com/modelcontextprotocol/csharp-sdk/blob/main/src/ModelContextProtocol.AspNetCore/SseHandler.cs#L93-L97
Patch
https://github.com/modelcontextprotocol/go-sdk/blob/main/mcp/streamable.go#L281C1-L288C2
Patch
https://github.com/modelcontextprotocol/python-sdk/blob/main/src/mcp/server/streamable_http.py#L680-L685
Patch
https://github.com/modelcontextprotocol/ruby-sdk/blob/main/examples/streamable_http_server.rb
Patch
https://github.com/modelcontextprotocol/ruby-sdk/commit/db40143402d65b4fb6923cec42d2d72cb89b3874
Product
https://github.com/modelcontextprotocol/ruby-sdk/releases/tag/v0.9.2
More from ruby-sdk
8.3
CVE-2026-67431
MCP Ruby SDK: Ruby SSE Session Poisoning
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.3
CVE-2026-67430
MCP Ruby SDK: Unbounded session retention in StreamableHTTPTransport allows memory exhaustion via initialize flood
