CVE-2026-46678 json
Pydantic AI: SSRF cloud-metadata blocklist bypass via IPv4-mapped IPv6 (Incomplete fix of CVE-2026-25580)
published 2026-05-21 5 mo ago modified 2026-08-04 3 mo ago also EUVD-2026-50561 , GHSA-cqp8-fcvh-x7r3 , PYSEC-2026-2978 , PYSEC-2026-2982
- cvss
- 6.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 32%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- pypi pydantic-ai 1.99.0
- pypi pydantic-ai-slim 1.99.0
- pydantic pydantic_ai 1.99.0
- pydantic pydantic_ai_slim 1.99.0
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-46678 updated cvss 6.8
pydantic-ai: pydantic-ai-slim: Pydantic AI: Server-Side Request Forgery (SSRF) bypass exposes cloud credentials.
-
Red Hat Lightspeed Core lightspeed-core/lightspeed-stack-rhel9 Red Hat Enterprise Linux AI (RHEL AI) 3 rhelai3/bootc-cuda-rhel9, rhelai3/bootc-rocm-rhel9, rhelai3/bootc-gaudi-rhel9, rhelai3/disk-image-cuda-rhel9not affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 3 mo ago
Exploit prediction
0.38% chance of exploitation in the next 30 days, higher than 32% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N |
| GitHub | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N |
| NVD | 3.1 | 5.9 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N |
| OSV | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | pydantic-ai | >=1.56.0, <1.99.0 |
1.99.0 |
| pypi | pydantic-ai-slim | >=1.56.0, <1.99.0 |
1.99.0 |
Affected products
- pydantic pydantic-ai
- pydantic pydantic-ai-slim
Classification
- Weakness
-
- CWE-918 Server-Side Request Forgery
References
-
github.com
/pydantic/pydantic-ai/security/advisories/GHSA-cqp8-fcvh-x7r3
web, vendor-advisory
-
github.com
/pydantic/pydantic-ai/releases/tag/v1.99.0
product, release-notes
-
github.com
/pydantic/pydantic-ai/security/advisories/GHSA-2jrp-274c-jhv3
web
-
github.com
/pydantic/pydantic-ai
package
-
pypi.org
/project/pydantic-ai
package
-
github.com
/advisories/GHSA-cqp8-fcvh-x7r3
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-46678
advisory
-
pypi.org
/project/pydantic-ai-slim
package
Sources
- CVE List CVE-2026-46678
- GitHub Advisory GHSA-cqp8-fcvh-x7r3
- NVD CVE-2026-46678
- OSV PYSEC-2026-2978
- OSV PYSEC-2026-2982
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.