CVE-2026-54249 Vulnerability Analysis & Exploit Details

CVE-2026-54249
Vulnerability Scoring

6.8
/10
High Risk

If left unpatched, CVE-2026-54249 could lead to major system disruptions or data loss.

Attack Complexity Details

  • Attack Complexity: High
    Exploits require significant effort and special conditions.
  • Attack Vector: Network
    Vulnerability is exploitable over a network without physical access.
  • Privileges Required: None
    No privileges are required for exploitation.
  • Scope: Changed
    Successful exploitation can impact components beyond the vulnerable component.
  • User Interaction: None
    No user interaction is necessary for exploitation.

CVE-2026-54249 Details

Status: Analyzed

Last updated: 🕐 04 Aug 2026, 13:22 UTC
Originally published on: 🕘 29 Jul 2026, 21:17 UTC

Time between publication and last update: 5 days

CVSS Release: version 3

CVSS3 Source

security-advisories@github.com

CVSS3 Type

Secondary

CVSS3 Vector

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N

CVE-2026-54249 Vulnerability Summary

CVE-2026-54249: 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.

Assessing the Risk of CVE-2026-54249

Access Complexity Graph

The exploitability of CVE-2026-54249 depends on two key factors: attack complexity (the level of effort required to execute an exploit) and privileges required (the access level an attacker needs).

Exploitability Analysis for CVE-2026-54249

CVE-2026-54249 presents a challenge to exploit due to its high attack complexity, but the absence of privilege requirements still makes it a viable target for skilled attackers. A thorough security review is advised.

Understanding AC and PR

A lower complexity and fewer privilege requirements make exploitation easier. Security teams should evaluate these aspects to determine the urgency of mitigation strategies, such as patch management and access control policies.

Attack Complexity (AC) measures the difficulty in executing an exploit. A high AC means that specific conditions must be met, making an attack more challenging, while a low AC means the vulnerability can be exploited with minimal effort.

Privileges Required (PR) determine the level of system access necessary for an attack. Vulnerabilities requiring no privileges are more accessible to attackers, whereas high privilege requirements limit exploitation to authorized users with elevated access.

CVSS Score Breakdown Chart

Above is the CVSS Sub-score Breakdown for CVE-2026-54249, illustrating how Base, Impact, and Exploitability factors combine to form the overall severity rating. A higher sub-score typically indicates a more severe or easier-to-exploit vulnerability.

CIA Impact Analysis

Below is the Impact Analysis for CVE-2026-54249, showing how Confidentiality, Integrity, and Availability might be affected if the vulnerability is exploited. Higher values usually signal greater potential damage.

  • Confidentiality: High
    Exploiting CVE-2026-54249 can result in unauthorized access to sensitive data, severely compromising data privacy.
  • Integrity: None
    CVE-2026-54249 poses no threat to data integrity.
  • Availability: None
    CVE-2026-54249 does not impact system availability.

CVE-2026-54249 References

External References

CWE Common Weakness Enumeration

CWE-918

CAPEC Common Attack Pattern Enumeration and Classification

  • Server Side Request Forgery CAPEC-664 An adversary exploits improper input validation by submitting maliciously crafted input to a target application running on a server, with the goal of forcing the server to make a request either to itself, to web services running in the server’s internal network, or to external third parties. If successful, the adversary’s request will be made with the server’s privilege level, bypassing its authentication controls. This ultimately allows the adversary to access sensitive data, execute commands on the server’s network, and make external requests with the stolen identity of the server. Server Side Request Forgery attacks differ from Cross Site Request Forgery attacks in that they target the server itself, whereas CSRF attacks exploit an insecure user authentication mechanism to perform unauthorized actions on the user's behalf.

Vulnerable Configurations

  • cpe:2.3:a:pydantic:pydantic_ai:1.65.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.65.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.66.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.66.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.67.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.67.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.68.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.68.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.69.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.69.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.70.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.70.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.71.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.71.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.72.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.72.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.73.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.73.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.74.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.74.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.75.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.75.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.76.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.76.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.77.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.77.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.78.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.78.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.79.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.79.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.80.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.80.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.81.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.81.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.82.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.82.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.83.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.83.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.84.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.84.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.84.1:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.84.1:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.85.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.85.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.85.1:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.85.1:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.86.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.86.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.86.1:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.86.1:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.87.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.87.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.88.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.88.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.89.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.89.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.89.1:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.89.1:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.90.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.90.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.91.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.91.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.92.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.92.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.93.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.93.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.94.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.94.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.95.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.95.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.95.1:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.95.1:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.96.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.96.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.96.1:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.96.1:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.97.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.97.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.98.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.98.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.99.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.99.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.100.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.100.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.101.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.101.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.102.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.102.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.103.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.103.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:1.104.0:*:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:1.104.0:*:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta1:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta1:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta2:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta2:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta3:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta3:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta4:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta4:*:*:*:python:*:*
  • cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta5:*:*:*:python:*:*
    cpe:2.3:a:pydantic:pydantic_ai:2.0.0:beta5:*:*:*:python:*:*

Protect Your Infrastructure against CVE-2026-54249: Combat Critical CVE Threats

Stay updated with real-time CVE vulnerabilities and take action to secure your systems. Enhance your cybersecurity posture with the latest threat intelligence and mitigation techniques. Develop the skills necessary to defend against CVEs and secure critical infrastructures. Join the top cybersecurity professionals safeguarding today's infrastructures.

Other 5 Recently Published CVEs Vulnerabilities

  • CVE-2026-96294 – Uncaught exception, Improper Handling of Exceptional Conditions vulnerability in Apache Thrift NodeJS bindings. This issue affects Apache Thrift...
  • CVE-2026-96292 – Inefficient regular expression complexity, Inefficient Algorithmic Complexity vulnerability in Apache Thrift Lua bindings. This issue affects Ap...
  • CVE-2026-96288 – Uncontrolled Recursion, Allocation of resources without limits or throttling vulnerability in Apache Thrift Erlang bindings. This issue affects ...
  • CVE-2026-94653 – Inefficient Algorithmic Complexity vulnerability in Apache Thrift PHP bindings. This issue affects Apache Thrift: before 0.25.0. Users are re...
  • CVE-2026-94652 – Missing release of memory after effective lifetime vulnerability in Apache Thrift c++ bindings. This issue affects Apache Thrift: before 0.25.0....