Read the docs

Pydantic AI blocklist bypass via IPv6 zone identifier allows SSRF

Priority LOW 30CWE-1289Published · Updated

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

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.0039 33rd percentileScored 2026-11-07
Public exploit Yes 4 exploit referencesTagged by NVD
Fix Partial pydantic-ai (pydantic): 1.107.6, 2.44.0pydantic-ai-slim (pydantic): 1.107.6, 2.44.0+2 more productsRed Hat: 2 without a fix

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

VendorProductAffected versionsFixed inStatusSource
pydanticpydantic-ai1.56.0 to before 1.107.6; 2.0.0b1 to before 2.44.01.107.6, 2.44.0Patch availableCNA
pydanticpydantic-ai-slim1.56.0 to before 1.107.6; 2.0.0b1 to before 2.44.01.107.6, 2.44.0Patch availableCNA
—pydantic-ai (PyPI)1.56.0 to before 1.107.61.107.6Patch availableGHSA-vmxc-h2x2-jmf3
—pydantic-ai (PyPI)2.0.0b1 to before 2.44.02.44.0Patch availableGHSA-vmxc-h2x2-jmf3
—pydantic-ai-slim (PyPI)1.56.0 to before 1.107.61.107.6Patch availableGHSA-vmxc-h2x2-jmf3
—pydantic-ai-slim (PyPI)2.0.0b1 to before 2.44.02.44.0Patch availableGHSA-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

CPE configurations NVD · 2

CPEVersionsRoleVendor
cpe:2.3:a:pydantic:pydantic_ai:*:*:*:*:*:python:*:*1.56.0 to before 1.107.6Vulnerablepydantic
cpe:2.3:a:pydantic:pydantic_ai:*:-:*:*:*:python:*:*2.0.0 to before 2.44.0Vulnerablepydantic
  • cpe:2.3:a:pydantic:pydantic_ai:*:*:*:*:*:python:*:* Versions 1.56.0 to before 1.107.6 Vulnerable ·pydantic
  • cpe:2.3:a:pydantic:pydantic_ai:*:-:*:*:*:python:*:* Versions 2.0.0 to before 2.44.0 Vulnerable ·pydantic

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 →

ProductStatusPlan or fix
Lightspeed CoreAffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux AI (RHEL AI) 3AffectedNo fix yet: Fix deferred

Timeline

  1. 2026-10-08 Threatist record created from CVE-2026-107289
  2. 2026-10-08 Alias added: GHSA-vmxc-h2x2-jmf3
  3. 2026-10-09 Affected versions changed · Red Hat
  4. 2026-10-09 CVSS score added · Red Hat

References

  • 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
See all 15 →

Sources