Read the docs
TI-2026-39151 Aliases CVE-2026-54249GHSA-h7p7-w5gc-xj3w

Server-side request forgery in pydantic-ai

Priority LOW 30CWE-918Published · 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
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-918 and the CVSS impact.

Summary

Pydantic AI is a Python agent framework for building Generative AI applications. In versions 1.65.0 through 1.105.0, and 2.0.0b1 through 2.0.0b5, a client that submits message history to a Pydantic AI UI adapter (such as the Vercel AI adapter) can reference arbitrary files in the application's model-provider or cloud-storage account. While file URL parts are validated against a scheme allowlist, UploadedFile references — which point to a file by provider file ID or cloud-storage URI (e.g. s3://…, gs://…) — were forwarded without validation. Because the provider resolves an UploadedFile using the server-side identity (IAM role, service account, or provider API key) rather than the client's, an attacker can craft message history to make the server read objects from its own account or other tenants, given a referenceable identifier. Exploitation requires a valid file identifier, which is not always unguessable depending on how the application names objects. This issue has been fixed in versions 1.106.0 and 2.0.0b6.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00315 24th percentileScored 2026-11-07
Fix Fixed pydantic-ai (pydantic): 1.106.0, 2.0.0b6pydantic-ai-slim (pydantic): 2.0.0b6, 1.106.0+2 more products

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.65.0 to before 1.106.0; 2.0.0b1 to before 2.0.0b61.106.0, 2.0.0b6Patch availableCNA
pydanticpydantic-ai-slim2.0.0b1 to before 2.0.0b6; 1.65.0 to before 1.106.02.0.0b6, 1.106.0Patch availableCNA
—pydantic-ai-slim (PyPI)1.65.0 to before 1.106.01.106.0Patch availableGHSA-h7p7-w5gc-xj3w
—pydantic-ai-slim (PyPI)2.0.0b1 to before 2.0.0b62.0.0b6Patch availableGHSA-h7p7-w5gc-xj3w
—pydantic-ai (PyPI)1.65.0 to before 1.106.01.106.0Patch availableGHSA-h7p7-w5gc-xj3w
—pydantic-ai (PyPI)2.0.0b1 to before 2.0.0b62.0.0b6Patch availableGHSA-h7p7-w5gc-xj3w
  • pydantic-ai Vendorpydantic Affected 1.65.0 to before 1.106.0; 2.0.0b1 to before 2.0.0b6 Fixed in 1.106.0, 2.0.0b6 Patch available CNA
  • pydantic-ai-slim Vendorpydantic Affected 2.0.0b1 to before 2.0.0b6; 1.65.0 to before 1.106.0 Fixed in 2.0.0b6, 1.106.0 Patch available CNA
  • pydantic-ai-slim (PyPI) Vendor— Affected 1.65.0 to before 1.106.0 Fixed in 1.106.0 Patch available GHSA-h7p7-w5gc-xj3w
  • pydantic-ai-slim (PyPI) Vendor— Affected 2.0.0b1 to before 2.0.0b6 Fixed in 2.0.0b6 Patch available GHSA-h7p7-w5gc-xj3w
  • pydantic-ai (PyPI) Vendor— Affected 1.65.0 to before 1.106.0 Fixed in 1.106.0 Patch available GHSA-h7p7-w5gc-xj3w
  • pydantic-ai (PyPI) Vendor— Affected 2.0.0b1 to before 2.0.0b6 Fixed in 2.0.0b6 Patch available GHSA-h7p7-w5gc-xj3w

CPE configurations NVD · 6

CPEVersionsRoleVendor
cpe:2.3:a:pydantic:pydantic_ai:*:*:*:*:*:python:*:*1.65.0 to before 1.105.0Vulnerablepydantic
cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta1:*:*:*:python:*:*2.0.0 beta1Vulnerablepydantic
cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta2:*:*:*:python:*:*2.0.0 beta2Vulnerablepydantic
cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta3:*:*:*:python:*:*2.0.0 beta3Vulnerablepydantic
cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta4:*:*:*:python:*:*2.0.0 beta4Vulnerablepydantic
cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta5:*:*:*:python:*:*2.0.0 beta5Vulnerablepydantic
  • cpe:2.3:a:pydantic:pydantic_ai:*:*:*:*:*:python:*:* Versions 1.65.0 to before 1.105.0 Vulnerable ·pydantic
  • cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta1:*:*:*:python:*:* Versions 2.0.0 beta1 Vulnerable ·pydantic
  • cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta2:*:*:*:python:*:* Versions 2.0.0 beta2 Vulnerable ·pydantic
  • cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta3:*:*:*:python:*:* Versions 2.0.0 beta3 Vulnerable ·pydantic
  • cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta4:*:*:*:python:*:* Versions 2.0.0 beta4 Vulnerable ·pydantic
  • cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta5:*:*:*:python:*:* Versions 2.0.0 beta5 Vulnerable ·pydantic

Remediation

  • Fix · CNA pydantic-ai (pydantic) Fixed in 1.106.0, 2.0.0b6
  • Fix · CNA pydantic-ai-slim (pydantic) Fixed in 2.0.0b6, 1.106.0
  • Fix · GHSA-h7p7-w5gc-xj3w pydantic-ai-slim (PyPI) Fixed in 1.106.0 Advisory →
  • Fix · GHSA-h7p7-w5gc-xj3w pydantic-ai-slim (PyPI) Fixed in 2.0.0b6 Advisory →
  • Fix · GHSA-h7p7-w5gc-xj3w pydantic-ai (PyPI) Fixed in 1.106.0 Advisory →
  • Fix · GHSA-h7p7-w5gc-xj3w pydantic-ai (PyPI) Fixed in 2.0.0b6 Advisory →

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

Not affected: 2 products
  • Lightspeed Core
  • Red Hat Enterprise Linux AI (RHEL AI) 3

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-54249
  2. 2026-10-03 Alias added: GHSA-h7p7-w5gc-xj3w

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-69617 Pydantic AI blocklist bypass via IPv6 zone identifier allows SSRF CVSS 3.1MEDIUM 6.8
See all 15 →

Sources