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.
Metrics
Affected Vendors & Products
References
History
Tue, 13 Oct 2026 14:45:00 +0000
| 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
|
Fri, 09 Oct 2026 00:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
| |
| Metrics |
threat_severity
|
threat_severity
|
Thu, 08 Oct 2026 19:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Pydantic
Pydantic pydantic-ai |
|
| Vendors & Products |
Pydantic
Pydantic pydantic-ai |
Thu, 08 Oct 2026 18:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
Thu, 08 Oct 2026 15:45:00 +0000
| 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
|
Status: PUBLISHED
Assigner: GitHub_M
Published: 2026-10-08T15:18:40.047Z
Updated: 2026-10-08T17:28:53.801Z
Reserved: 2026-10-07T15:53:23.586Z
Link: CVE-2026-107288
Updated: 2026-10-08T17:28:33.935Z
Status : Analyzed
Published: 2026-10-08T16:17:04.147
Modified: 2026-10-13T14:35:05.370
Link: CVE-2026-107288