Skip to main content
← Vulnerabilities

OAuth client SSRF filter checks host strings, not resolved addresses

Exploited
No known exploitation
Fix
Fixed in 3.7.0
Who is exposed
Not reported

Do first: Upgrade to a fixed version: 3.7.0.

Published
Last modified
16/100 · provisional
None on Exploit-DB, Metasploit or GitHub

Summary

The rmcp OAuth client can be made to send requests to internal network addresses, reaching unauthenticated internal HTTP services, though responses are not returned to the attacker directly. An attacker running a malicious MCP server or authorization server can trigger this by supplying metadata with a hostname that resolves to an internal address, or by having token requests redirected to one.

Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.

Read the original description

From 2.0.0 until 3.7.0, the rmcp OAuth client decided whether it may fetch an authorization server's metadata URL by inspecting only the host string. It rejected literal loopback, private and link-local IP addresses and known cloud metadata hostnames, but it did not resolve other hostnames. A hostname that resolves to an internal address passed the check.

A malicious MCP server can return protected-resource metadata that names an authorization server whose hostname resolves to an internal address. The client then sends GET requests to that address during discovery.

The same release fixes two related bypasses:

  • Bracketed IPv6 literals such as http://[::1]:6379/ were not recognized as internal, because the check kept the brackets from the URL host.
  • token_endpoint and registration_endpoint from authorization server metadata were not checked at all, and token requests follow redirects. A malicious authorization server could make the client send POST requests to an internal address.

The impact is client-side SSRF. Responses are not returned to the attacker directly. Unauthenticated internal HTTP services are reachable. Cloud metadata endpoints that require headers or IMDSv2 are largely unaffected.

The flaw was corrected in 3.7.0. AuthorizationManager::new now builds its HTTP client with a DNS resolver that applies the address policy to every resolved address, and checks every IP-literal URL and followed redirect against the same policy. Loopback and private addresses are allowed only when the MCP server's own URL names one of that class. Deployments that reach their authorization server through a hostname that resolves to a private address should use AuthorizationManager::new_allowing_private_addresses.

Clients supplied through new_with_oauth_http_client are not covered by the resolved-address checks. Such clients must enforce their own outbound address policy.

cve.now Index

16Pcve.now Index 16 of 100 · methodology v3 · provisional
  • Exploitation?/40Unknown. No CISA SSVC exploitation rating yet
  • Exposure?/25Unknown. No advisory context yet
  • Reach16/20rmcp: 2.1M downloads a week
  • Severity?/10Unknown. No CVSS score or vendor rating
  • No patch0/5No signal

What would change the score

  • Would score about 71 if added to CISA KEV
  • Would score about 66 if CISA's SSVC rates exploitation active
  • Would score about 38 if advisories confirm default setups are exposed

Impact

  • Widely used

    rmcp has 2.1m weekly downloads.Source: crates.io

What to do

  • Upgrade to a fixed version: 3.7.0.

Timeline

  1. Advisory published18 days
  2. Record last updated

Affected versions

  • rmcpcrates.io

    From 2.0.0 · fixed in 3.7.0

    Fixed in 3.7.0 (released Oct 22, 2026, the day of disclosure).

    The latest release, 3.9.0, is not affected.

Evidence 3

  1. Advisory
  2. Repository
  3. Link

Corrections

None so far.

Something wrong on this page? Report an error. Every fix is listed here.

Questions about RUSTSEC-2026-0457

Is RUSTSEC-2026-0457 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data

Which versions are affected by RUSTSEC-2026-0457?

rmcp (crates.io): from 2.0.0 before 3.7.0.Source: cve.now feed data

How do I fix RUSTSEC-2026-0457?

Upgrade to a fixed version: 3.7.0.Source: cve.now feed data