CVE-2026-107288
Description
A flaw was found in pydantic-ai. The web fetching utilities fail to normalize domain names before checking them against the configured blocklist. A remote attacker capable of influencing the model output can supply alternate character encodings, case variations, or trailing labels that resolve to a blocked destination. This allows the application to bypass domain restrictions and fetch data from restricted hosts, resulting in information disclosure.
Statement
A low impact flaw was found in pydantic-ai, a Python agent framework shipped in Red Hat Enterprise Linux AI and Lightspeed Core. The local web_fetch_tool and the WebFetch local fallback compare configured blocked_domains entries against a URL hostname before both values are normalized to the form used for DNS resolution. A remote attacker able to influence model output can supply an equivalent IDNA spelling, a non-ASCII label separator, a case variation, or a trailing root label that resolves to a blocked host but does not match the configured blocklist string, causing the application to fetch that host with its own privileges and resulting in information disclosure from restricted hosts. Applications that rely on allowed_domains are not subject to this bypass, because allowlist matching fails closed for unmatched spellings, and the tools' private-IP and cloud-metadata protections remain effective. Red Hat and upstream both rate this flaw Low severity (CVSS 3.7). Because the impact is Low, the fix for the affected Red Hat Enterprise Linux AI and Lightspeed Core releases is deferred and no update trackers are filed for this issue; the residual risk is limited to information disclosure from hosts an application has explicitly listed in its blocked_domains configuration, and exploitation additionally requires the attacker to influence model output into fetching a specifically crafted domain spelling.
Mitigation
Applications using the pydantic-ai web fetching tools can mitigate this issue by configuring allowed_domains instead of blocked_domains. Allowlist matching fails closed for domain spellings that do not match the configured entries, so an alternate encoding of a host cannot be fetched unless that exact spelling is explicitly allowed; note that this requires listing every domain the application needs to fetch. The tools' private-IP and cloud-metadata protections are not affected by this flaw and remain effective.
Common Vulnerability Scoring System (CVSS) Score Details
Info alert:Important note
CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).
The following CVSS metrics and score provided are preliminary and subject to review.
CVSS v3 Score Breakdown
| Red Hat | NVD | cve.org | |
|---|---|---|---|
| Base Score | 3.7 | N/A | 3.7 |
| Attack Vector | Network | N/A | Network |
| Attack Complexity | High | N/A | High |
| Privileges Required | None | N/A | None |
| User Interaction | None | N/A | None |
| Scope | Unchanged | N/A | Unchanged |
| Confidentiality | Low | N/A | Low |
| Integrity Impact | None | N/A | None |
| Availability Impact | None | N/A | None |
Vector
Red Hat: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
cve.org: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Frequently Asked Questions
Not sure what something means? Check out our Security Glossary.
Want to get errata notifications? Sign up here.