Skip to content
Heist/ feed
Back to feed
High

RMCP: Unauthenticated permanent session-table leak in rmcp Streamable HTTP server transport leads to remote denial-of-service

Type: advisorySources: OSV

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-63128
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 21:56 UTC · Revision 1

Source evidence

RMCP: Unauthenticated permanent session-table leak in rmcp Streamable HTTP server transport leads to remote denial-of-service

core-osv · Original source

Published 16 Sept 2026, 14:49 UTC

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.

osv:CVE-2026-63128
Complete source record
{
  "id": "93f2c71c4574b85023db18d22459bcd1bc224b6f409759fd881bf7b717a0cf94",
  "url": "https://osv.dev/vulnerability/CVE-2026-63128",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "RMCP: Unauthenticated permanent session-table leak in rmcp Streamable HTTP server transport leads to remote denial-of-service",
    "summary": "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.",
    "evidence": "osv:CVE-2026-63128",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-63128",
      "aliases": [
        "CVE-2026-63128",
        "GHSA-9pj6-vhgr-3mwh"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/modelcontextprotocol/rust-sdk",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "67a30859443ab0fe79f2d50307c7d7bc9518f7e3"
                },
                {
                  "fixed": "dfa7fd6f9309deab60bea230b041be9a3fcda846"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.0.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "dfa7fd6f9309deab60bea230b041be9a3fcda846"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "67a30859443ab0fe79f2d50307c7d7bc9518f7e3"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "rmcp-v2.0.0"
                  }
                ]
              }
            }
          ],
          "versions": [
            "rmcp-v1.8.0",
            "rmcp-macros-v1.8.0",
            "rmcp-v1.7.0",
            "rmcp-macros-v1.7.0",
            "rmcp-v1.6.0",
            "rmcp-macros-v1.6.0",
            "rmcp-v1.5.0",
            "rmcp-macros-v1.5.0",
            "rmcp-v1.4.0",
            "rmcp-macros-v1.4.0",
            "rmcp-v1.3.0",
            "rmcp-macros-v1.3.0",
            "rmcp-v1.2.0",
            "rmcp-macros-v1.2.0",
            "rmcp-v1.1.1",
            "rmcp-macros-v1.1.1",
            "rmcp-v1.1.0",
            "rmcp-macros-v1.1.0",
            "rmcp-v1.0.0",
            "rmcp-macros-v1.0.0",
            "rmcp-v1.0.0-alpha",
            "rmcp-macros-v1.0.0-alpha",
            "rmcp-v0.17.0",
            "rmcp-macros-v0.17.0",
            "rmcp-v0.16.0",
            "rmcp-macros-v0.16.0",
            "rmcp-v0.15.0",
            "rmcp-macros-v0.15.0",
            "rmcp-v0.14.0",
            "rmcp-macros-v0.14.0",
            "rmcp-v0.13.0",
            "rmcp-macros-v0.13.0",
            "rmcp-v0.12.0",
            "rmcp-macros-v0.12.0",
            "rmcp-v0.11.0",
            "rmcp-macros-v0.11.0",
            "rmcp-v0.10.0",
            "rmcp-macros-v0.10.0",
            "rmcp-v0.9.1",
            "rmcp-macros-v0.9.1",
            "rmcp-v0.9.0",
            "rmcp-macros-v0.9.0",
            "rmcp-v0.8.5",
            "rmcp-macros-v0.8.5",
            "rmcp-v0.8.4",
            "rmcp-macros-v0.8.4",
            "rmcp-v0.8.3",
            "rmcp-macros-v0.8.3",
            "rmcp-v0.8.2",
            "rmcp-macros-v0.8.2",
            "rmcp-v0.8.1",
            "rmcp-macros-v0.8.1",
            "rmcp-v0.8.0",
            "rmcp-macros-v0.8.0",
            "rmcp-v0.7.0",
            "rmcp-macros-v0.7.0",
            "rmcp-v0.6.3",
            "rmcp-macros-v0.6.3",
            "rmcp-v0.6.2",
            "rmcp-macros-v0.6.2",
            "rmcp-v0.6.1",
            "rmcp-macros-v0.6.1",
            "rmcp-v0.6.0",
            "rmcp-macros-v0.6.0",
            "rmcp-v0.5.0",
            "rmcp-macros-v0.5.0",
            "rmcp-v0.4.1",
            "rmcp-macros-v0.4.1",
            "rmcp-v0.4.0",
            "rmcp-macros-v0.4.0",
            "rmcp-v0.3.2",
            "rmcp-macros-v0.3.2",
            "rmcp-v0.3.1",
            "rmcp-macros-v0.3.1",
            "rmcp-v0.3.0",
            "rmcp-macros-v0.3.0",
            "rmcp-v0.2.1",
            "rmcp-macros-v0.2.1",
            "rmcp-v0.2.0",
            "rmcp-macros-v0.2.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63128.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:32.092951554Z",
      "provider": "osv",
      "references": [
        "https://github.com/modelcontextprotocol/rust-sdk/releases/tag/rmcp-v2.0.0",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63128.json",
        "https://github.com/modelcontextprotocol/rust-sdk/security/advisories/GHSA-9pj6-vhgr-3mwh",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-63128",
        "https://github.com/modelcontextprotocol/rust-sdk/commit/dfa7fd6f9309deab60bea230b041be9a3fcda846",
        "https://github.com/modelcontextprotocol/rust-sdk/pull/934"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-400",
          "CWE-401",
          "CWE-772"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63128.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-63128",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 499094,
  "published_at": "2026-09-16T14:49:04.401+00:00"
}