Skip to main content

MCP Ruby SDK EUVDEUVD-2026-50498

| CVE-2026-67430 MEDIUM
Memory Leak (CWE-401)
2026-07-29 GitHub_M GHSA-52jp-gj8w-j6xh
5.3
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI
7.5 HIGH

Unauthenticated network access with no complexity; memory exhaustion can crash the process entirely, warranting A:H over official A:L.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

Lifecycle Timeline

3
Patch available
Jul 29, 2026 - 20:02 EUVD
Source Code Evidence Fetched
Jul 29, 2026 - 19:57 vuln.today
Analysis Generated
Jul 29, 2026 - 19:57 vuln.today

DescriptionCVE.org

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 expire sessions by default, so repeated initialize requests retain unbounded ServerSession objects and can exhaust process memory. This issue is fixed in version 0.23.0.

AnalysisAI

Unbounded session growth in MCP Ruby SDK's StreamableHTTPTransport allows unauthenticated remote attackers to exhaust server process memory by repeatedly sending initialize requests. Affected versions prior to 0.23.0 defaulted to no session expiry and no concurrent session cap, meaning each initialize request created a persistent ServerSession object that was never reclaimed without an explicit client DELETE. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
Send repeated HTTP initialize requests
Delivery
Allocate unbounded ServerSession objects per request
Exploit
Fill Ruby heap with unreleased session objects
Execution
Trigger OS out-of-memory condition
Impact
Process crash denies service to all MCP clients

Vulnerability AssessmentAI

Exploitation The target must be running a version of the mcp Ruby gem prior to 0.23.0 with MCP::Server::Transports::StreamableHTTPTransport in stateful mode (stateless: false, the default). … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The CVSS vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L) accurately reflects the network-accessible, zero-authentication, low-complexity attack surface, but the official A:L rating may understate impact: sustained initialize flooding can fully exhaust process memory and crash the Ruby process, which is closer to A:H behavior. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario An attacker sends a continuous stream of HTTP initialize requests to the StreamableHTTPTransport endpoint without ever issuing DELETE requests. Each request allocates a new ServerSession object retained indefinitely in the session hash. …
Remediation Upgrade the mcp gem to version 0.23.0 or later; the fix is published at https://github.com/modelcontextprotocol/ruby-sdk/releases/tag/v0.23.0. … Detailed patch versions, workarounds, and compensating controls in full report.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

EUVD-2026-50498 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy