Description
Pydantic AI is a Python agent framework for building Generative AI applications. In versions 1.56.0 through 1.98.0, when an application opts a URL into force_download='allow-local' (disabling the default block on private/internal IPs), the cloud-metadata blocklist could be bypassed by encoding the metadata IP in an IPv6 transition form (IPv4-mapped IPv6, 6to4, or NAT64), exposing cloud IAM short-term credentials on dual-stack or translated networks. This is an incomplete fix of GHSA-2jrp-274c-jhv3 / CVE-2026-25580, whose remediation did not hold for IPv6-encoded forms of the metadata IPs. An application is affected only if it explicitly opts a FileUrl (ImageUrl, AudioUrl, VideoUrl, DocumentUrl) into force_download='allow-local' on a URL influenced by untrusted input; it is not affected when using bundled integrations to ingest user input (Agent.to_web / clai web, VercelAIAdapter, AGUIAdapter / Agent.to_ag_ui), since they do not propagate force_download from external data, nor when downloading only from developer-controlled URLs. This issue has been fixed in version 1.99.0.
Published: 2026-07-29
Score: 6.8 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Pydantic AI’s agent framework allows developers to opt a download URL into the force_download='allow-local' mode, disabling the default block on private or internal IP ranges. In versions 1.56.0 through 1.98.0, an attacker can encode the cloud‑metadata IP address into an IPv4‑mapped IPv6, 6to4, or NAT64 format, bypassing the blocklist and causing the application to retrieve short‑term IAM credentials from the metadata service. This bypass was part of an incomplete fix to a prior issue (CVE‑2026‑25580) and is a classic SSRF condition (CWE‑918), exposing sensitive authentication data to untrusted parties. The flaw is only exploitable when an application explicitly sets force_download='allow-local' for a FileUrl (ImageUrl, AudioUrl, VideoUrl, DocumentUrl) derived from untrusted input; bundled integrations and developer‑controlled URLs do not propagate this setting, leaving them unaffected.

Affected Systems

The affected products are pydantic:pydantic-ai and pydantic:pydantic-ai-slim. All releases from 1.56.0 up to and including 1.98.0 are vulnerable, and the issue was resolved in version 1.99.0. Users of developer‑controlled, trusted URLs are not at risk, and built‑in adapters that do not propagate force_download escape the vulnerability.

Risk and Exploitability

The CVSS score of 6.8 indicates moderate severity; however, the EPSS score of less than 1% suggests exploitation attempts are currently rare or difficult. The vulnerability is not on the CISA KEV list. Exploitation would require an application that explicitly sets force_download='allow-local' on a URL derived from untrusted input, so the attack vector is inferred from the description. Remediation mitigates the risk by preventing the bypass and protecting credential exposure.

Generated by OpenCVE AI on August 3, 2026 at 12:50 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade pydantic‑ai and pydantic‑ai‑slim to version 1.99.0 or later
  • Ensure applications do not set force_download='allow-local' for URLs that originate from untrusted sources
  • Restrict URL inputs to trusted domains or validate that the URL does not point to a cloud‑metadata IP

Generated by OpenCVE AI on August 3, 2026 at 12:50 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-cqp8-fcvh-x7r3 Pydantic AI: SSRF cloud-metadata blocklist bypass via IPv4-mapped IPv6 (Incomplete fix of CVE-2026-25580)
History

Fri, 31 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Moderate


Thu, 30 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 29 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Pydantic
Pydantic pydantic-ai
Vendors & Products Pydantic
Pydantic pydantic-ai

Wed, 29 Jul 2026 20:30:00 +0000

Type Values Removed Values Added
Description Pydantic AI is a Python agent framework for building Generative AI applications. In versions 1.56.0 through 1.98.0, when an application opts a URL into force_download='allow-local' (disabling the default block on private/internal IPs), the cloud-metadata blocklist could be bypassed by encoding the metadata IP in an IPv6 transition form (IPv4-mapped IPv6, 6to4, or NAT64), exposing cloud IAM short-term credentials on dual-stack or translated networks. This is an incomplete fix of GHSA-2jrp-274c-jhv3 / CVE-2026-25580, whose remediation did not hold for IPv6-encoded forms of the metadata IPs. An application is affected only if it explicitly opts a FileUrl (ImageUrl, AudioUrl, VideoUrl, DocumentUrl) into force_download='allow-local' on a URL influenced by untrusted input; it is not affected when using bundled integrations to ingest user input (Agent.to_web / clai web, VercelAIAdapter, AGUIAdapter / Agent.to_ag_ui), since they do not propagate force_download from external data, nor when downloading only from developer-controlled URLs. This issue has been fixed in version 1.99.0.
Title Pydantic AI: SSRF cloud-metadata blocklist bypass via IPv4-mapped IPv6 (Incomplete fix of CVE-2026-25580)
Weaknesses CWE-918
References
Metrics cvssV3_1

{'score': 6.8, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N'}


Subscriptions

Pydantic Pydantic-ai Pydantic Ai
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-30T14:37:27.447Z

Reserved: 2026-05-15T21:46:51.547Z

Link: CVE-2026-46678

cve-icon Vulnrichment

Updated: 2026-07-30T14:37:22.085Z

cve-icon NVD

Status : Analyzed

Published: 2026-07-29T21:17:47.040

Modified: 2026-08-04T13:52:14.037

Link: CVE-2026-46678

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-29T20:16:45Z

Links: CVE-2026-46678 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T13:00:07Z

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)