CVE-2026-46678
Received Received - Intake

Pydantic AI Cloud Metadata Bypass via IPv6 Encoding

Vulnerability report for CVE-2026-46678, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-29

Last updated on: 2026-07-29

Assigner: GitHub, Inc.

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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-29
Last Modified
2026-07-29
Generated
2026-07-30
AI Q&A
2026-07-30
EPSS Evaluated
N/A
NVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
pydantic pydantic From 1.56.0 (inc) to 1.98.0 (inc)
pydantic pydantic 1.99.0

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-918 The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

Pydantic AI versions 1.56.0 through 1.98.0 have a vulnerability where enabling force_download='allow-local' for URLs allows bypassing cloud metadata IP restrictions using IPv6 transition formats like IPv4-mapped IPv6. This exposes cloud IAM short-term credentials on dual-stack or translated networks.

Detection Guidance

Check if your application uses Pydantic AI versions 1.56.0 through 1.98.0 with force_download='allow-local' enabled for URLs influenced by untrusted input. Inspect code for FileUrl, ImageUrl, AudioUrl, VideoUrl, or DocumentUrl with this setting.

Impact Analysis

If your application uses Pydantic AI and explicitly opts FileUrl (ImageUrl, AudioUrl, etc.) into force_download='allow-local' with untrusted input URLs, attackers could steal cloud IAM credentials via IPv6 encoding bypass. Only affected if using untrusted URLs with this specific setting.

Mitigation Strategies

Upgrade to Pydantic AI version 1.99.0 or later. If upgrading is not possible, disable force_download='allow-local' for affected URLs or ensure untrusted input does not influence URL handling.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-46678. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart