CVE-2026-54249: pydantic-ai · Server-Side Request Forgery (SSRF)
Affects pydantic-aiSource CVE Database V5
Not known to be exploited · CVSS 6.8 Medium : upgrade to 2.0.0b6 or 1.106.0 when convenient.
Data as of 27 Oct 2026, 17:11 UTC
- EPSS
- 0.3% chance of exploitation in 30 days – higher than 24% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 2.0.0b6, 1.106.0
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:NExploitation evidence
Disclosed: evidence found.
CVE published 29 Jul 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade pydantic-ai and pydantic-ai-slim to 2.0.0b6 or 1.106.0.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| pydanticpydantic-ai | Affected
| Fixed in
|
| pydanticpydantic-ai | Affected
| Fixed in
|
| pydanticpydantic-ai-slim | Affected
| Fixed in
|
| pydanticpydantic-ai-slim | Affected
| Fixed in
|
PyPIpydantic-aipkg:pypi/pydantic-aiOther threats | Affected
| Fixed in– |
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
A fix is available in pydantic-ai versions 1.106.0 and 2.0.0b6, which validate UploadedFile references similarly to file URLs. Users should upgrade to these versions to remediate the vulnerability. If upgrading is not feasible, users should avoid passing untrusted client-submitted message history to the agent or strip UploadedFile parts from incoming messages before processing to prevent exploitation.
Description
### Summary A client that can submit message history to a Pydantic AI UI adapter can reference arbitrary files in the application's model-provider or cloud-storage account. The server forwards the reference to the model provider, which fetches it using the server's own credentials, allowing the client to read files it should not have access to. ### Details UI adapters reconstruct file parts from client-submitted message history and forward them to the model provider. File **URL** parts are validated against a scheme allowlist before being forwarded, but `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, a client that crafts message history containing an attacker-chosen `UploadedFile` can cause the server to read objects belonging to its own account or to other tenants, given a referenceable identifier. ### Impact Applications that pass untrusted client-submitted message history to an agent through a UI adapter (such as the Vercel AI adapter). Exploitation requires the attacker to reference a valid file identifier; depending on how the application names objects, such identifiers are not always unguessable. ### Patches Upgrade to `1.106.0` (1.x) or `2.0.0b6` (the 2.x beta line), which validate `UploadedFile` references on client-submitted messages the same way file URLs are validated. ### Workarounds If users cannot upgrade, do not pass untrusted client-submitted message history to the agent, or strip `UploadedFile` parts from incoming messages before running the agent.