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.
Published: 2026-07-29
Score: 8.3 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The MCP Ruby SDK allows client applications to interact with Model Context Protocol servers. Prior to version 0.23.0 the StreamableHTTPTransport does not tie a session ID to its session owner. An attacker who obtains a valid session ID can forge tool or call requests that execute within the victim’s session context, enabling the attacker to run commands or manipulate resources as if they were the legitimate session holder. This flaw is effectively a remote code execution vector that bypasses normal authentication and authorization checks.

Affected Systems

The affected product is the Model Context Protocol Ruby SDK. All releases before 0.23.0 are vulnerable. Users of version 0.22.x and earlier should verify that they do not use an older gem version.

Risk and Exploitability

The CVSS score of 8.3 indicates high severity, while the EPSS score of less than 1% suggests a low likelihood of widespread exploitation at present. The vulnerability is not listed in the CISA KEV catalog. An attacker must obtain a stolen session ID, which may be achieved through network eavesdropping or compromising a client. Once in possession of such an ID, the attacker can inject malicious tool or call requests that run with the victim’s privileges.

Generated by OpenCVE AI on August 3, 2026 at 12:54 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the MCP Ruby SDK to version 0.23.0 or later, where session IDs are correctly bound to session owners.
  • If an immediate upgrade is not possible, enforce strict validation of session IDs, revoke any suspected or compromised IDs, and ensure that tool or call requests are authenticated against the session owner.
  • Continuously monitor application logs for unexpected tool or call request patterns and audit user activity to detect misuse of session IDs.

Generated by OpenCVE AI on August 3, 2026 at 12:54 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-5p9g-j988-pcwv MCP Ruby SDK: Ruby SSE Session Poisoning
History

Thu, 30 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 29 Jul 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Modelcontextprotocol
Modelcontextprotocol ruby-sdk
Vendors & Products Modelcontextprotocol
Modelcontextprotocol ruby-sdk

Wed, 29 Jul 2026 19:30:00 +0000

Type Values Removed Values Added
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.
Title MCP Ruby SDK: Ruby SSE Session Poisoning
Weaknesses CWE-284
References
Metrics cvssV4_0

{'score': 8.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N'}


Subscriptions

Modelcontextprotocol Ruby-sdk
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-30T14:35:45.395Z

Reserved: 2026-07-29T15:07:24.991Z

Link: CVE-2026-67431

cve-icon Vulnrichment

Updated: 2026-07-30T14:35:38.999Z

cve-icon NVD

Status : Deferred

Published: 2026-07-29T20:17:12.120

Modified: 2026-07-30T19:30:33.710

Link: CVE-2026-67431

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T13:00:07Z

Weaknesses