CVE-2026-107288

Pydantic AI: web_fetch_tool blocked_domains bypass via a hostname the resolver normalizes differently

State
Published
Severity
3.7 Low
Published
Oct 8, 2026
Updated
Oct 8, 2026
Reserved
Oct 7, 2026

Read the record on cve.org

Description

Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.77.0 until 1.107.6 and 2.44.0, the local web_fetch_tool and the WebFetch local fallback compare blocked_domains entries with a URL hostname before both values are normalized to the form used by getaddrinfo. An attacker-influenced model can use an equivalent IDNA spelling, non-ASCII label separator, case variation, or trailing root label that resolves to a blocked host but does not match the configured string, causing the application to fetch that host with its own privileges. allowed_domains fails closed for unmatched spellings, and private-IP and cloud-metadata protections remain effective. This issue is fixed in versions 1.107.6 and 2.44.0.

Scores

CVSSScoreVectorSource
3.13.7 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:NGitHub_M

Weaknesses

  • CWE-918 Server-Side Request Forgery (SSRF)
  • CWE-1289 Improper Validation of Unsafe Equivalence in Input

Affected Products

ProductVersions
pydantic-aipydantic
  • >= 1.77.0, < 1.107.6Affected
  • >= 2.0.0b1, < 2.44.0Affected
pydantic-ai-slimpydantic
  • >= 1.77.0, < 1.107.6Affected
  • >= 2.0.0b1, < 2.44.0Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.