MCP Ruby SDK: Insufficient Session Binding Allows SSE Stream Hijacking via Session ID Replay
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-33946
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 15:53 UTC · Revision 1
Source evidence
MCP Ruby SDK: Insufficient Session Binding Allows SSE Stream Hijacking via Session ID Replay
core-osv · Original sourcePublished 27 Mar 2026, 21:20 UTC
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.
osv:CVE-2026-33946
Complete source record
{
"id": "319b87617e3181bf93a51a0dfbaece0fd3cbb280e1928a31486400dc2d1ad555",
"url": "https://osv.dev/vulnerability/CVE-2026-33946",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "MCP Ruby SDK: Insufficient Session Binding Allows SSE Stream Hijacking via Session ID Replay",
"summary": "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.",
"evidence": "osv:CVE-2026-33946",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-33946",
"aliases": [
"CVE-2026-33946",
"GHSA-qvqr-5cv7-wh35"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/modelcontextprotocol/ruby-sdk",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "3fc7bcd2683d2200d42f79ab46752dc65f896db1"
},
{
"fixed": "db40143402d65b4fb6923cec42d2d72cb89b3874"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:lfprojects:mcp_ruby_sdk:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "0.9.2"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "db40143402d65b4fb6923cec42d2d72cb89b3874"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "3fc7bcd2683d2200d42f79ab46752dc65f896db1"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v0.9.2"
}
]
}
}
],
"versions": [
"v0.9.1",
"v0.8.0",
"v0.9.0",
"v0.7.1",
"v0.7.0",
"v0.6.0",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-33946.json"
}
}
],
"modified": "2026-10-28T02:30:30.299022619Z",
"provider": "osv",
"references": [
"https://github.com/modelcontextprotocol/csharp-sdk/blob/main/src/ModelContextProtocol.AspNetCore/SseHandler.cs#L93-L97",
"https://github.com/modelcontextprotocol/go-sdk/blob/main/mcp/streamable.go#L281C1-L288C2",
"https://github.com/modelcontextprotocol/python-sdk/blob/main/src/mcp/server/streamable_http.py#L680-L685",
"https://github.com/modelcontextprotocol/ruby-sdk/blob/main/examples/streamable_http_server.rb",
"https://github.com/modelcontextprotocol/ruby-sdk/releases/tag/v0.9.2",
"https://hackerone.com/reports/3556146",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33946.json",
"https://github.com/modelcontextprotocol/ruby-sdk/security/advisories/GHSA-qvqr-5cv7-wh35",
"https://nvd.nist.gov/vuln/detail/CVE-2026-33946",
"https://github.com/modelcontextprotocol/ruby-sdk/commit/db40143402d65b4fb6923cec42d2d72cb89b3874"
],
"provider_metadata": {
"cwe_ids": [
"CWE-384",
"CWE-639"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33946.json"
}
},
"related_cves": [
{
"value": "CVE-2026-33946",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 497038,
"published_at": "2026-03-27T21:20:07.9+00:00"
}