CVE-2026-64684: Model Context Protocol Rust SDK custom header leak on cross-origin redirects

CVE-2026-64684 · Severity: medium · CVSS 6.8 · Published 2026-09-16

The rmcp crate in the Model Context Protocol Rust SDK forwards custom HTTP headers (such as API keys and authentication tokens) to servers reached via cross-origin redirects. If an attacker compromises the primary server and redirects traffic to an attacker-controlled site, sensitive headers are leaked, allowing the attacker to capture API keys and impersonate the legitimate client.

Technologies: rmcp (crates.io). Vendors: crates.io.

Quick answers

Is CVE-2026-64684 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-64684 being exploited in the wild.
How severe is CVE-2026-64684?
Medium severity, with a CVSS score of 6.8, published 16 September 2026.
Which products and versions are affected?
rmcp (crates.io) < 2.1.0, SEMVER:introduced=0,fixed=2.1.0.
Is there a fix for CVE-2026-64684?
Yes. rmcp (crates.io): upgrade to 2.1.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-64684 attacked?
It is attacked over the network.
Am I affected by CVE-2026-64684?
Check whether you run rmcp (crates.io) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • rmcp (crates.io): upgrade to 2.1.0 or later
    cargo update -p rmcp

Technical details

The vulnerability exists in StreamableHttpClientTransport, which uses reqwest's default redirect policy (limited to 10 redirects) without override. The default policy follows 307/308 redirects and strips only Authorization, Cookie, and Proxy-Authorization headers on cross-origin redirects; custom headers injected via StreamableHttpClientTransportConfig.custom_headers are not marked as sensitive and are forwarded verbatim. The root cause is twofold: (1) default_http_client() does not call .redirect(Policy::none()) to disable automatic following, and (2) custom headers are added via RequestBuilder::header() without sensitivity marking. An attacker who can compromise the primary MCP server can issue a 307/308 redirect to an attacker-controlled site and capture forwarded API keys or other auth headers. The fix is to disable automatic redirect following in default_http_client() and inspect 3xx responses before forwarding requests.

Affected products

  • Model Context Protocol Rust SDK c330fede90e4729c234f8e87fdbc5ea27a1dd10c and earlier

Identifiers

  • CVE-2026-64684
  • GHSA-9g45-5xwm-f3wc

Timeline

  • 2026-09-17: disclosed

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.