Read the docs
TI-2026-46990 Aliases CVE-2026-65975

Incorrect authorization in pydantic-ai

Priority LOW 35CWE-863Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Security bypass
Confidentiality · integrity · availability
Low · Low · None
Fix status
Partial Red Hat: 1 without a fix

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and Red Hat. Impact type from CWE-863.

Summary

Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. In versions 1.88.0 up to but not including 1.107.1 and 2.0.0b1 up to but not including 2.5.0, the UI adapters (AG-UI via Agent.to_ag_ui()/AGUIAdapter, and Vercel AI via VercelAIAdapter) use sanitize_messages to strip unresolved ("dangling") client-submitted tool calls from untrusted message history before it reaches the agent, a defense-in-depth default that prevents the agent from executing tool calls the model never emitted. However, the strip anchored to a message index computed before sanitization ran, so when a trailing client message sanitized to empty and was dropped (for example a client system message under the default manage_system_prompt='server'), a preceding assistant response carrying an unresolved tool call became the new tail and was dispatched without inspection. As a result, a remote client could cause a registered, non-approval server tool to run with client-supplied arguments rather than arguments the model produced. The impact is bounded by what the affected tools do and is most significant for applications that gate tool execution in a model-request hook (before_model_request / after_model_request), since a forged call skips the model turn and bypasses that guardrail; approval-gated tools (requires_approval=True) are not auto-executed by this path. This issue has been fixed in versions 1.107.1 and 2.5.0.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00329 26th percentileScored 2026-11-07
Fix Partial pydantic-ai (pydantic): 1.107.1, 2.5.0pydantic-ai-slim (pydantic): 1.107.1, 2.5.0Red Hat: 1 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
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.88.0 to before 1.107.1; 2.0.0b1 to before 2.5.01.107.1, 2.5.0Patch availableCNA
pydanticpydantic-ai-slim1.88.0 to before 1.107.1; 2.0.0b1 to before 2.5.01.107.1, 2.5.0Patch availableCNA
  • pydantic-ai Vendorpydantic Affected 1.88.0 to before 1.107.1; 2.0.0b1 to before 2.5.0 Fixed in 1.107.1, 2.5.0 Patch available CNA
  • pydantic-ai-slim Vendorpydantic Affected 1.88.0 to before 1.107.1; 2.0.0b1 to before 2.5.0 Fixed in 1.107.1, 2.5.0 Patch available CNA

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:pydantic:pydantic_ai:*:*:*:*:*:python:*:*1.88.0 to before 1.107.1; 2.0.0 to before 2.5.0Vulnerablepydantic
  • cpe:2.3:a:pydantic:pydantic_ai:*:*:*:*:*:python:*:* Versions 1.88.0 to before 1.107.1; 2.0.0 to before 2.5.0 Vulnerable ·pydantic

Remediation

  • Fix · CNA pydantic-ai (pydantic) Fixed in 1.107.1, 2.5.0
  • Fix · CNA pydantic-ai-slim (pydantic) Fixed in 1.107.1, 2.5.0

Vendor assessments

Red Hat

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

ProductStatusPlan or fix
Lightspeed CoreAffectedNo fix yet: Fix deferred
Not affected: 1 product
  • Red Hat Enterprise Linux AI (RHEL AI) 3

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-65975

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-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
  • TI-2026-39151 Server-side request forgery in pydantic-ai CVSS 3.1MEDIUM 6.8
See all 15 →

Sources