Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify exposed UI adapter endpoint
-
DeliveryCraft message history with UploadedFile cloud URI
-
ExploitSubmit to adapter bypassing scheme validation
-
ExecutionServer resolves URI using its own IAM/service account
-
ImpactExfiltrate 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
More in Pydantic Ai
View allPydantic AI versions 0.0.26 through 1.55.x contain a server-side request forgery vulnerability in URL download functiona
Cross-site request forgery in Pydantic AI's development web chat UI allows any website a developer happens to visit whil
Concurrency slot exhaustion in Pydantic AI 2.10.0 through 2.52.x lets streamed model requests permanently occupy slots i
Server-Side Request Forgery in Pydantic AI (versions 1.56.0-1.101.0, 2.0.0b1, 2.0.0b2) allows unauthenticated network at
Server-side request forgery in Pydantic AI's URL-fetching guards lets an application that has explicitly opted a URL int
Pydantic AI, a Python framework for building Generative AI agents, buffers complete HTTP response bodies before applying
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
Denial of service in Pydantic AI's local web_fetch_tool and WebFetch local fallback allows an attacker-controlled HTML p
Tool call injection in Pydantic AI's UI adapters (AG-UI via Agent.to_ag_ui()/AGUIAdapter, and Vercel AI via VercelAIAdap
DNS rebinding against the Pydantic AI development web chat server (Agent.to_web() and `clai web`) lets a hostile website
Pydantic AI versions 1.34.0 through 1.50.x contain a path traversal vulnerability in the web UI that allows unauthentica
A domain-denylist bypass in Pydantic AI's local web-fetch tooling (web_fetch_tool and the WebFetch local fallback) lets
EUVD-2026-50562
GHSA-h7p7-w5gc-xj3w
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB