CVE-2026-107289
Description
A flaw was found in pydantic-ai. This vulnerability can lead to information disclosure, potentially exposing sensitive cloud credentials such as Identity and Access Management (IAM) tokens. In configurations where local network access is permitted for untrusted requests, a remote attacker can bypass the internal cloud metadata blocklist by appending an IPv6 zone identifier to the requested address. This allows the application to reach restricted internal cloud metadata services.
Statement
A LOW impact information disclosure flaw was found in the pydantic-ai Python agent framework, which is shipped in Red Hat Enterprise Linux AI and Lightspeed Core products. When an application explicitly opts attacker-influenced URLs into local network access (a FileUrl with force_download='allow-local' or web_fetch_tool with allow_local_urls=True; both settings are disabled by default) and runs in an IPv6-enabled environment, a remote attacker can bypass the internal cloud-metadata blocklist by appending an IPv6 zone identifier to an IPv6 metadata address. Because IPv6Address equality and hashing include the zone identifier, the blocklist comparison fails, while the network stack ignores the zone identifier on a non-link-local destination and delivers the request to the cloud metadata service, potentially exposing cloud IAM credentials. Red Hat rates this flaw LOW severity (CVSS 3.7) rather than the upstream MODERATE rating (CVSS 6.8) because exploitation requires the non-default opt-in local-network settings and an IPv6-enabled environment, and the resulting information disclosure remains within the vulnerable application's own security context. The affected Red Hat products carry a DEFER resolution because updates are not filed for LOW severity flaws; the residual risk is limited to deployments that enable local network access for URLs influenced by untrusted input in IPv6-enabled environments.
Mitigation
Local network access in pydantic-ai is opt-in and disabled by default. Do not enable force_download='allow-local' on FileUrl objects or allow_local_urls=True on web_fetch_tool for URLs that could be influenced by untrusted input; web_fetch_tool is configured only by the application itself, so a client cannot enable local network access on its own. If local network access must be allowed for such URLs, reject URL hosts containing '%' (an IPv6 zone identifier) before constructing the FileUrl or configuring the tool. Upgrading pydantic-ai to a version containing the upstream fix also resolves the issue.
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 | 6.8 |
| 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 | Changed |
| Confidentiality | Low | N/A | High |
| 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:C/C:H/I:N/A:N
Understanding the Weakness (CWE)
Confidentiality
Technical Impact: Read Application Data
Integrity
Technical Impact: Execute Unauthorized Code or Commands
Access Control
Technical Impact: Bypass Protection Mechanism
By providing URLs to unexpected hosts or ports, attackers can make it appear that the server is sending the request, possibly bypassing access controls such as firewalls that prevent the attackers from accessing the URLs directly. The server can be used as a proxy to conduct port scanning of hosts in internal networks, use other URLs such as that can access documents on the system (using file://), or use other protocols such as gopher:// or tftp://, which may provide greater control over the contents of requests.
Frequently Asked Questions
Not sure what something means? Check out our Security Glossary.
Want to get errata notifications? Sign up here.