Description
RMCP is an official Rust SDK for the Model Context Protocol. Prior to 2.0.0, the rmcp crate's stateful Streamable HTTP server in crates/rmcp/src/transport/streamable_http_server/tower.rs allows an unauthenticated client to send a well-formed JSON-RPC POST that is not an initialization request, or an initialization request with a mismatched protocol header, causing StreamableHttpService::handle_post to call LocalSessionManager.create_session before validating the message. An early validation failure returns without removing the inserted LocalSessionHandle from LocalSessionManager.sessions, permanently retaining session and channel state for the server process lifetime. Repeated requests can grow the shared session table without bound, degrade legitimate-client latency through lock contention, exhaust memory, and terminate the server. This issue is fixed in version 2.0.0.
Published: 2026-09-16
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Remote Denial‑of‑Service
Action: Immediate Patch
AI Analysis

Impact

The vulnerability resides in the rust-sdk's rmcp crate, which processes JSON‑RPC POST requests in a stateful Streamable HTTP server. An unauthenticated client can send a specially crafted request that triggers session creation before the message is fully validated. When validation fails early, the server does not remove the partially created session from the manager, permanently retaining its handle. Over time, repeated exploitation consumes memory, increases lock contention, slows legitimate traffic, and can eventually cause the server to terminate.

Affected Systems

Affected systems are implementations of the Model Context Protocol Rust SDK that use the rmcp crate prior to release 2.0.0, particularly those that expose the Streamable HTTP server endpoint. Applications built on modelcontextprotocol:rust-sdk that depend on older crate versions are directly impacted.

Risk and Exploitability

The CVSS score of 7.5 classifies this as a high severity remote denial‑of‑service. The EPSS score is below 1 %, indicating that real‑world exploitation is currently unlikely, and it is not listed in CISA’s KEV catalog. Nonetheless, the attack requires only network access to the HTTP service and no authentication, making the exploit straightforward to execute and capable of degrading or halting service availability.

Generated by OpenCVE AI on September 18, 2026 at 01:21 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to rust‑sdk rmcp crate 2.0.0 or newer, which contains the closure fix for session handles.
  • If an upgrade cannot be performed immediately, restrict exposure of the RMCP Streamable HTTP server to a whitelist of trusted IP addresses or network segments.
  • After applying the fix or imposing restrictions, monitor server memory allocation and latency, enabling prompt response if abnormal growth or slowdowns persist.

Generated by OpenCVE AI on September 18, 2026 at 01:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-9pj6-vhgr-3mwh RMCP: Unauthenticated permanent session-table leak in rmcp Streamable HTTP server transport leads to remote denial-of-service
History

Fri, 18 Sep 2026 05:15:00 +0000

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

Thu, 17 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Important


Wed, 16 Sep 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 16 Sep 2026 15:00:00 +0000

Type Values Removed Values Added
Description RMCP is an official Rust SDK for the Model Context Protocol. Prior to 2.0.0, the rmcp crate's stateful Streamable HTTP server in crates/rmcp/src/transport/streamable_http_server/tower.rs allows an unauthenticated client to send a well-formed JSON-RPC POST that is not an initialization request, or an initialization request with a mismatched protocol header, causing StreamableHttpService::handle_post to call LocalSessionManager.create_session before validating the message. An early validation failure returns without removing the inserted LocalSessionHandle from LocalSessionManager.sessions, permanently retaining session and channel state for the server process lifetime. Repeated requests can grow the shared session table without bound, degrade legitimate-client latency through lock contention, exhaust memory, and terminate the server. This issue is fixed in version 2.0.0.
Title RMCP: Unauthenticated permanent session-table leak in rmcp Streamable HTTP server transport leads to remote denial-of-service
Weaknesses CWE-400
CWE-401
CWE-772
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Subscriptions

Modelcontextprotocol Rust-sdk
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-16T15:18:37.976Z

Reserved: 2026-07-15T16:54:55.816Z

Link: CVE-2026-63128

cve-icon Vulnrichment

Updated: 2026-09-16T15:18:25.854Z

cve-icon NVD

Status : Deferred

Published: 2026-09-16T15:17:39.960

Modified: 2026-09-30T17:51:56.193

Link: CVE-2026-63128

cve-icon Redhat

Severity : Important

Publid Date: 2026-09-16T14:49:04Z

Links: CVE-2026-63128 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-18T05:00:03Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-401

    Missing Release of Memory after Effective Lifetime

  • CWE-772

    Missing Release of Resource after Effective Lifetime