Pydantic AI: web_fetch_tool blocked_domains bypass via a hostname the resolver normalizes differently
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| pydantic | pydantic-ai | affected |
|
|||||||||
| pydantic | pydantic-ai-slim | affected |
|
Configuration 1 [-]
|
No data.
| Vendor | Product | Versions | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Pydantic | Pydantic-ai |
|
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.368% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Pydantic pydantic Ai
|
|
| CPEs | cpe:2.3:a:pydantic:pydantic_ai:*:*:*:*:*:python:*:* cpe:2.3:a:pydantic:pydantic_ai:*:-:*:*:*:python:*:* |
|
| Vendors & Products |
Pydantic pydantic Ai
|
| Type | Values Removed | Values Added |
|---|---|---|
| References |
| |
| Metrics |
threat_severity
|
threat_severity
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Pydantic
Pydantic pydantic-ai |
|
| Vendors & Products |
Pydantic
Pydantic pydantic-ai |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| 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. | |
| Title | Pydantic AI: web_fetch_tool blocked_domains bypass via a hostname the resolver normalizes differently | |
| Weaknesses | CWE-1289 CWE-918 |
|
| References |
|
|
| Metrics |
cvssV3_1
|