Case · DiggingBeagle record

MCP Fetch private-address guard resolved a different hostname than HTTPX

An IDNA2003 versus IDNA2008 normalization difference allowed a public-address validation decision to be reused when the HTTP client connected to a different, internal destination.

Assessment profile

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

Direct maintainer advisory and local end-to-end SSRF surrogate; not observed cloud secret exfiltration. The impact band remains unknown: available evidence does not establish actual deployed victim outcomes or a comparable measured loss.

Assessed Oct 26, 2026 using diggingbeagle.assessment/1.

At a glance

Claims & evidence

CLM-CP20-MCP-FETCH-IDNAThe MCP Fetch advisory demonstrates a crafted Unicode/punycode hostname that passed its public IP check but connected through HTTPX to a loopback test service.supported

Basis: reported finding

Link to claim
CLM-CP20-ENRICH-MCP-FETCH-IDNAGHSA-v38p-wf49-hx2j confirms that Python IDNA2003 and HTTPX IDNA2008 normalize certain internationalized names differently, allowing a public-IP check to authorize a loopback proof-of-concept fetch; fixed release is 2026.10.24.supported

Basis: reported finding

Link to claim

Unknowns and contradictions

  • The proof reached a local stand-in service, not a verified production metadata credential. The defender must be persuaded or instructed to fetch a crafted URL, and reachable internal destinations depend on deployment.

Sources and citation

Material revision history

  1. Oct 26, 2026 · Canonical change recorded · new in release · revision 193