{"id":"CVE-2026-46678","summary":"Pydantic AI: SSRF cloud-metadata blocklist bypass via IPv4-mapped IPv6 (Incomplete fix of CVE-2026-25580)","details":"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.","aliases":["GHSA-cqp8-fcvh-x7r3","PYSEC-2026-2978","PYSEC-2026-2982"],"modified":"2026-08-01T03:33:01.912236487Z","published":"2026-07-29T20:16:45.986Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/46xxx/CVE-2026-46678.json","cna_assigner":"GitHub_M","cwe_ids":["CWE-918"]},"references":[{"type":"WEB","url":"https://github.com/pydantic/pydantic-ai/releases/tag/v1.99.0"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/46xxx/CVE-2026-46678.json"},{"type":"ADVISORY","url":"https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-cqp8-fcvh-x7r3"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-46678"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/pydantic/pydantic-ai","events":[{"introduced":"d398bc9d39aecca6530fa7486a410d5cce936301"},{"fixed":"78a4d8dff8e122a7ea32d69f554aaac40892502f"}],"database_specific":{"extracted_events":[{"introduced":"1.56.0"},{"fixed":"1.99.0"}],"source":"AFFECTED_FIELD"}}],"versions":["v1.91.0","v1.98.0","v1.97.0","v1.96.0","v1.96.1","v1.94.0","v1.95.1","v1.95.0","v1.93.0","v1.92.0","v1.90.0","v1.89.1","v1.89.0","v1.88.0","v1.87.0","v1.86.0","v1.86.1","v1.85.1","v1.85.0","v1.84.1","v1.84.0","v1.83.0","v1.82.0","v1.81.0","v1.80.0","v1.79.0","v1.78.0","v1.77.0","v1.74.0","v1.76.0","v1.75.0","v1.73.0","v1.72.0","v1.70.0","v1.69.0","v1.68.0","v1.67.0","v1.66.0","v1.65.0","v1.64.0","v1.63.0","v1.62.0","v1.61.0","v1.60.0","v1.59.0","v1.58.0","v1.57.0","v1.56.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-46678.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N"}]}