Skip to main content

Pydantic AI CVE-2026-54249

| EUVDEUVD-2026-50562 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-07-29 GitHub_M GHSA-h7p7-w5gc-xj3w
6.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify exposed UI adapter endpoint
  2. Delivery
    Craft message history with UploadedFile cloud URI
  3. Exploit
    Submit to adapter bypassing scheme validation
  4. Execution
    Server resolves URI using its own IAM/service account
  5. Impact
    Exfiltrate cloud storage object contents

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the application exposes a Pydantic AI UI adapter endpoint (such as the Vercel AI adapter) that accepts client-submitted message history containing UploadedFile objects. The attacker must supply a valid provider file ID or cloud-storage URI (e.g., s3://bucket/key or gs://bucket/object) that the server's backend identity (IAM role, service account, or API key) is authorized to resolve - identifiers that are randomly generated and unguessable significantly raise the effective attack complexity consistent with AC:H. Exploitation is limited by: (1) the attacker's ability to reach the adapter endpoint (applications placing this behind authentication reduce PR:N exposure); (2) the guessability or prior leakage of valid file identifiers; (3) IAM policies constraining which storage objects the server identity can access. There is no required special platform, OS, or non-default configuration beyond the use of a UI adapter that processes message history - any deployment of the affected versions using the Vercel AI adapter or equivalent is in scope.

Impact

The CVSS 6.8 rating with vector AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N accurately reflects the threat model. AC:H is the dominant risk-reducing factor: successful exploitation requires the attacker to supply a valid file identifier or cloud-storage URI that the server's identity can resolve - identifiers are not always unguessable depending on how the application names objects (e.g., sequential IDs, predictable prefixes, or leaked identifiers from prior interactions). S:C with C:H indicates a scope change: the attacker's reach extends beyond the Pydantic AI application itself into the server's cloud-storage account or potentially other tenants, making the confidentiality impact high when a valid identifier is obtained. No EPSS score was provided in source data. The vulnerability is not listed in the CISA KEV catalog and no POC is known, so real-world exploitation risk is currently speculative but the impact when conditions are met is significant for applications with predictable storage naming or multi-tenant architectures. CVSS PR:N suggests the adapter endpoint is accessible without application-level authentication, though this is not confirmed by description text alone - deployments that require authentication before reaching the adapter reduce exposure materially.

Exploit ScenarioDerived

An attacker who can submit message history to a Pydantic AI Vercel AI adapter endpoint - whether because the endpoint is publicly exposed or the attacker holds a valid application session - crafts a message containing an UploadedFile reference pointing to an S3 URI such as s3://app-internal-bucket/secrets/env.json. The server, acting under its own IAM role, fetches the object and returns the content to the attacker, bypassing any bucket-level restrictions that would otherwise block the client's direct access. No public exploit code has been identified at time of analysis, but the attack pattern requires only knowledge of a valid cloud-storage URI reachable by the server's identity.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 29, 2026

Server-Side Request Forgery in Pydantic AI's UI adapter layer (versions 1.65.0-1.105.0 and 2.0.0b1-2.0.0b5) allows unauthenticated network clients to redirect the application server into fetching arbitrary cloud-storage objects using the server's own credentials. UploadedFile references - carrying provider file IDs or cloud-storage URIs such as s3:// or gs:// - submitted via client message history bypass the scheme allowlist applied to ordinary file URLs and are resolved server-side using the application's IAM role, service account, or API key. No public exploit has been identified at time of analysis, and no CISA KEV listing exists, but the scope-changing confidentiality impact (CVSS S:C/C:H) warrants prompt patching for any deployment exposing the Vercel AI adapter or similar UI adapters to untrusted clients.

RemediationAI

Upgrade pydantic-ai or pydantic-ai-slim to version 1.106.0 (v1 branch) or 2.0.0b6 (v2 beta branch) as the primary fix; both are confirmed by the vendor advisory at https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-h7p7-w5gc-xj3w. If an immediate upgrade is not feasible, restrict access to any endpoint that accepts client-submitted message history to authenticated and trusted clients only, reducing exposure for the PR:N unauthenticated attack path; note this is an application-layer control and does not fix the underlying validation bypass. Additionally, enforce cloud-storage bucket policies or IAM conditions that limit the server's identity to only the specific object paths it legitimately needs, reducing the blast radius of any successful SSRF exploitation. Avoid predictable or sequential object naming in cloud storage buckets accessible by the service account, as identifier guessability is a key enabling factor per AC:H.

Affected VersionsENISA

pydantic-ai 1.65.0, < 1.106.0
pydantic-ai 2.0.0b1, < 2.0.0b6
pydantic-ai-slim 2.0.0b1, < 2.0.0b6
pydantic-ai-slim 1.65.0, < 1.106.0

Affected Packages

pypi pydantic-ai fix: 1.106.0, 2.0.0b6
pypi pydantic-ai-slim fix: 1.106.0, 2.0.0b6
euvd pydantic_ai_2_0_0b1 fix: 2.0.0b6
euvd pydantic_ai_slim_2_0_0b1 fix: 2.0.0b6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 4 packages in pypi, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Pydantic AI (CPE: cpe:2.3:a:pydantic:pydantic-ai and cpe:2.3:a:pydantic:pydantic-ai-slim) provides UI adapter integrations - such as the Vercel AI adapter - that accept serialized message histories from clients. These histories can include two distinct file reference types: URL-based references, which are scheme-validated, and UploadedFile references, which encode provider file IDs or cloud-storage URIs (e.g., s3://bucket/key, gs://bucket/object). Prior to the fix, UploadedFile references were passed through to the backend without any allowlist or ownership check. Because resolution occurs server-side using the application's own identity (IAM role, service account, or provider API key), this is a classic CWE-918 (Server-Side Request Forgery) pattern adapted to AI framework file handling: the client supplies the target identifier, but the server's privileged identity performs the actual retrieval, effectively laundering unauthorized access through the trusted application context.

Know when Pydantic Ai gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.8 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N
vuln.today AI 6.8 MEDIUM

Network-reachable adapter, no auth required per description; AC:H because valid cloud identifier needed; S:C and C:H reflect cross-account storage access via server credentials.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N
Red Hat 6.8 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Jul 29, 2026 - 21:17 EUVD

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Medium
growing Python AI agent framework, popular in GenAI application development
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

54
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

CVE-2026-25580 HIGH POC
8.6 Feb 06

Pydantic AI versions 0.0.26 through 1.55.x contain a server-side request forgery vulnerability in URL download functiona

CVE-2026-107295 HIGH
7.6 Oct 08

Cross-site request forgery in Pydantic AI's development web chat UI allows any website a developer happens to visit whil

CVE-2026-107286 HIGH
7.5 Oct 08

Concurrency slot exhaustion in Pydantic AI 2.10.0 through 2.52.x lets streamed model requests permanently occupy slots i

CVE-2026-48782 MEDIUM
6.8 Jun 16

Server-Side Request Forgery in Pydantic AI (versions 1.56.0-1.101.0, 2.0.0b1, 2.0.0b2) allows unauthenticated network at

CVE-2026-107289 MEDIUM
6.8 Oct 08

Server-side request forgery in Pydantic AI's URL-fetching guards lets an application that has explicitly opted a URL int

CVE-2026-107294 MEDIUM
6.5 Oct 08

Pydantic AI, a Python framework for building Generative AI agents, buffers complete HTTP response bodies before applying

CVE-2026-107290 MEDIUM
6.5 Oct 08

Denial of service in Pydantic AI (pydantic-ai and pydantic-ai-slim) versions 1.77.0 through 1.107.5 and 2.0.0b1 through

CVE-2026-107287 MEDIUM
6.5 Oct 08

Denial of service in Pydantic AI's local web_fetch_tool and WebFetch local fallback allows an attacker-controlled HTML p

CVE-2026-65975 MEDIUM
6.5 Jul 29

Tool call injection in Pydantic AI's UI adapters (AG-UI via Agent.to_ag_ui()/AGUIAdapter, and Vercel AI via VercelAIAdap

CVE-2026-107292 MEDIUM
6.4 Oct 08

DNS rebinding against the Pydantic AI development web chat server (Agent.to_web() and `clai web`) lets a hostile website

CVE-2026-25640 MEDIUM
5.4 Feb 06

Pydantic AI versions 1.34.0 through 1.50.x contain a path traversal vulnerability in the web UI that allows unauthentica

CVE-2026-107288 LOW
3.7 Oct 08

A domain-denylist bypass in Pydantic AI's local web-fetch tooling (web_fetch_tool and the WebFetch local fallback) lets

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy