Case · DiggingBeagle record

Rust MCP OAuth metadata fetch trusted names without resolving private destinations

The rmcp client accepted attacker-specified OAuth discovery hostnames that could resolve to internal or link-local IPs.

Public disclosure: Nov 9, 2026

Scope

A client performs OAuth protected-resource discovery using metadata from an untrusted MCP server. The server identifies an authorization hostname passing string checks but resolving to an internal address; the client issues a GET request to that destination.

Assessment profile

Assessment method
Setting
research demonstration
Exploitation
demonstrated
Evidence
Grade B
Remediation
patch available
AI role
AGAINST AI
Basis and provenance

Scoped Claim(s) link to SRC-2026-DB233-RUST-MCP-OAUTH-SSRF; reviewed as vulnerability in research_demonstration. Only reported controlled behavior or proof-of-concept is established; no production victim or impact magnitude is measured.

Assessed Nov 10, 2026 using diggingbeagle.assessment/1.

At a glance

Mechanism and trust boundary

  1. 01

    Precondition and trust context

    A client performs OAuth protected-resource discovery using metadata from an untrusted MCP server.

  2. 02

    Crossed boundary

    The server identifies an authorization hostname passing string checks but resolving to an internal address; the client issues a GET request to that destination.

  3. 03

    Observed limit

    This finding establishes SSRF discovery exposure, not confirmed OAuth token theft or arbitrary internal POST access. Related streaming/cache findings are distinct and deferred.

Timeline

  1. Nov 9, 2026
    Event type unspecified

    Initial documented finding

    Rust MCP OAuth metadata fetch trusted names without resolving private destinations

  2. Nov 9, 2026
    disclosure

    Public disclosure

Claims & evidence

CLM-DB233-RUST-MCP-OAUTH-SSRF-01RustSec documents name-string validation without a DNS resolution check in rmcp OAuth client metadata retrieval.supported

Basis: reported finding

Link to claim
CLM-DB233-RUST-MCP-OAUTH-SSRF-02Affected rmcp versions start at 2.0.0 and the issue is patched at 3.7.0.supported

Basis: reported finding

Link to claim
CLM-ENR234-DB233-RUST-MCP-OAUTH-SSRFRustSec identifies rmcp versions from 2.0.0 up to but excluding 3.7.0 as affected and reports the default OAuth client corrected in 3.7.0; custom client constructors need separate enforcement.supported

Basis: reported finding

Link to claim

Controls and mitigations

  • Upgrade rmcp to 3.7.0 or later, whose default OAuth client checks resolved addresses and redirects.
  • If supplying a custom OAuth HTTP client, enforce equivalent IP and redirect policies; do not assume the library default protects custom client implementations.

Unknowns and contradictions

  • This finding establishes SSRF discovery exposure, not confirmed OAuth token theft or arbitrary internal POST access. Related streaming/cache findings are distinct and deferred.

Sources and citation

Material revision history

  1. Nov 11, 2026 · Published version · first publication · revision 235