Pydantic AI blocklist bypass via IPv6 zone identifier allows SSRF
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Impact type
- Information disclosure
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Partial Red Hat: 2 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-918 and the CVSS impact.
Summary
The pydantic-ai and pydantic-ai-slim packages are affected from 1.56.0 before 1.107.6 and from 2.0.0b1 before 2.44.0. The cloud-metadata blocklist compares IPv6 addresses with their zone identifier, so a zone-suffixed metadata address is not blocked (CWE-918). An attacker who controls URLs can reach the metadata service and potentially expose cloud IAM credentials when the application opts into local network access for FileUrl or web_fetch_tool. A public exploit is linked in the references.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.56.0 until 1.107.6 and 2.44.0, applications that opt attacker-influenced URLs into local network access through FileUrl with force_download='allow-local' or web_fetch_tool with allow_local_urls=True can bypass the cloud-metadata blocklist by appending an IPv6 zone identifier to an IPv6 metadata address. IPv6Address equality and hashing include the zone identifier, so the blocklist comparison fails even though the network stack ignores the zone on a non-link-local destination and reaches the metadata service, potentially exposing cloud IAM credentials. The opt-in settings are disabled by default, and the issue requires an IPv6-enabled environment. This issue is fixed in versions 1.107.6 and 2.44.0.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| pydantic | pydantic-ai | 1.56.0 to before 1.107.6; 2.0.0b1 to before 2.44.0 | 1.107.6, 2.44.0 | Patch available | CNA |
| pydantic | pydantic-ai-slim | 1.56.0 to before 1.107.6; 2.0.0b1 to before 2.44.0 | 1.107.6, 2.44.0 | Patch available | CNA |
| — | pydantic-ai (PyPI) | 1.56.0 to before 1.107.6 | 1.107.6 | Patch available | GHSA-vmxc-h2x2-jmf3 |
| — | pydantic-ai (PyPI) | 2.0.0b1 to before 2.44.0 | 2.44.0 | Patch available | GHSA-vmxc-h2x2-jmf3 |
| — | pydantic-ai-slim (PyPI) | 1.56.0 to before 1.107.6 | 1.107.6 | Patch available | GHSA-vmxc-h2x2-jmf3 |
| — | pydantic-ai-slim (PyPI) | 2.0.0b1 to before 2.44.0 | 2.44.0 | Patch available | GHSA-vmxc-h2x2-jmf3 |
- pydantic-ai Vendorpydantic Affected 1.56.0 to before 1.107.6; 2.0.0b1 to before 2.44.0 Fixed in 1.107.6, 2.44.0 Patch available CNA
- pydantic-ai-slim Vendorpydantic Affected 1.56.0 to before 1.107.6; 2.0.0b1 to before 2.44.0 Fixed in 1.107.6, 2.44.0 Patch available CNA
- pydantic-ai (PyPI) Vendor— Affected 1.56.0 to before 1.107.6 Fixed in 1.107.6 Patch available GHSA-vmxc-h2x2-jmf3
- pydantic-ai (PyPI) Vendor— Affected 2.0.0b1 to before 2.44.0 Fixed in 2.44.0 Patch available GHSA-vmxc-h2x2-jmf3
- pydantic-ai-slim (PyPI) Vendor— Affected 1.56.0 to before 1.107.6 Fixed in 1.107.6 Patch available GHSA-vmxc-h2x2-jmf3
- pydantic-ai-slim (PyPI) Vendor— Affected 2.0.0b1 to before 2.44.0 Fixed in 2.44.0 Patch available GHSA-vmxc-h2x2-jmf3
Remediation
Upgrade pydantic-ai and pydantic-ai-slim to version 1.107.6 for the 1.x line or 2.44.0 for the 2.x line. Red Hat lists Lightspeed Core and Red Hat Enterprise Linux AI (RHEL AI) 3 as affected, with plan none available.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA pydantic-ai (pydantic) Fixed in 1.107.6, 2.44.0
- Fix · CNA pydantic-ai-slim (pydantic) Fixed in 1.107.6, 2.44.0
- Fix · GHSA-vmxc-h2x2-jmf3 pydantic-ai (PyPI) Fixed in 1.107.6 Advisory →
- Fix · GHSA-vmxc-h2x2-jmf3 pydantic-ai (PyPI) Fixed in 2.44.0 Advisory →
- Fix · GHSA-vmxc-h2x2-jmf3 pydantic-ai-slim (PyPI) Fixed in 1.107.6 Advisory →
- Fix · GHSA-vmxc-h2x2-jmf3 pydantic-ai-slim (PyPI) Fixed in 2.44.0 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Low. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Lightspeed Core | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux AI (RHEL AI) 3 | Affected | No fix yet: Fix deferred |
Timeline
- 2026-10-08 Threatist record created from CVE-2026-107289
- 2026-10-08 Alias added: GHSA-vmxc-h2x2-jmf3
- 2026-10-09 Affected versions changed · Red Hat
- 2026-10-09 CVSS score added · Red Hat
References
Exploit 4
- https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-vmxc-h2x2-jmf3
- https://github.com/pydantic/pydantic-ai/pull/8401
- https://github.com/pydantic/pydantic-ai/commit/02157e1b87bd45d3f2e111ce07afdf89f9fb0e5b
- https://github.com/pydantic/pydantic-ai/commit/4da70591460f51a8c4f128eaeef70a33340dbd55
Patch 3
More Pydantic Ai vulnerabilities
- TI-2026-20687 Pydantic AI Affected by Server-Side Request Forgery (SSRF) in URL Download Handling CVSS 3.1HIGH 8.6
- TI-2026-69551 Pydantic AI keeps concurrency slots after streams end early CVSS 3.1HIGH 7.5
- TI-2026-46990 Incorrect authorization in pydantic-ai CVSS 3.1MEDIUM 6.5
- TI-2026-69610 Cross-site requests run agent tools in pydantic-ai web chat CVSS 3.1HIGH 7.6
- TI-2026-20740 Pydantic AI affected by Stored XSS via Path Traversal in Web UI CDN URL CVSS 3.1HIGH 7.1
- TI-2026-39151 Server-side request forgery in pydantic-ai CVSS 3.1MEDIUM 6.8
Sources
- CVE-2026-107289 · CVE Program
- CVE-2026-107289 · NVD
- FIRST EPSS
- GHSA-vmxc-h2x2-jmf3 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-107289 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences