Read the docs

Cross-site requests run agent tools in pydantic-ai web chat

Priority LOW 32CWE-352Published · Updated

Key facts

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

Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-352 and CWE-346.

Summary

The pydantic-ai and pydantic-ai-slim packages from 1.34.0 before 1.107.4 and from 2.0.0b1 before 2.28.0 lack request content-type validation on the Agent.to_web() chat endpoint (CWE-352). A visited website can send a cross-origin request to the local chat server, which runs the agent and its tools with the local process credentials. Tools marked requires_approval=True stay exposed through client-relayed approvals.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

Description from the CNA

Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.34.0 until 1.107.4 and 2.28.0, the Agent.to_web() and clai web development chat endpoint has missing request content-type validation. A website visited by a developer can submit a browser-compatible request to a loopback-hosted chat server, causing the served agent to run and execute tools with the privileges and credentials of the local process; client-relayed approval decisions also leave requires_approval=True tools exposed. Binding to localhost does not prevent a browser page from reaching the loopback address. This issue is fixed in versions 1.107.4 and 2.28.0.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00158 4th percentileScored 2026-11-07
Fix Partial pydantic-ai (pydantic): 1.107.4, 2.28.0pydantic-ai-slim (pydantic): 1.107.4, 2.28.0+2 more productsRed Hat: 1 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
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.34.0 to before 1.107.4; 2.0.0b1 to before 2.28.01.107.4, 2.28.0Patch availableCNA
pydanticpydantic-ai-slim1.34.0 to before 1.107.4; 2.0.0b1 to before 2.28.01.107.4, 2.28.0Patch availableCNA
—pydantic-ai (PyPI)1.34.0 to before 1.107.41.107.4Patch availableGHSA-h4xc-3qfq-jf93
—pydantic-ai (PyPI)2.0.0b1 to before 2.28.02.28.0Patch availableGHSA-h4xc-3qfq-jf93
—pydantic-ai-slim (PyPI)1.34.0 to before 1.107.41.107.4Patch availableGHSA-h4xc-3qfq-jf93
—pydantic-ai-slim (PyPI)2.0.0b1 to before 2.28.02.28.0Patch availableGHSA-h4xc-3qfq-jf93
  • pydantic-ai Vendorpydantic Affected 1.34.0 to before 1.107.4; 2.0.0b1 to before 2.28.0 Fixed in 1.107.4, 2.28.0 Patch available CNA
  • pydantic-ai-slim Vendorpydantic Affected 1.34.0 to before 1.107.4; 2.0.0b1 to before 2.28.0 Fixed in 1.107.4, 2.28.0 Patch available CNA
  • pydantic-ai (PyPI) Vendor— Affected 1.34.0 to before 1.107.4 Fixed in 1.107.4 Patch available GHSA-h4xc-3qfq-jf93
  • pydantic-ai (PyPI) Vendor— Affected 2.0.0b1 to before 2.28.0 Fixed in 2.28.0 Patch available GHSA-h4xc-3qfq-jf93
  • pydantic-ai-slim (PyPI) Vendor— Affected 1.34.0 to before 1.107.4 Fixed in 1.107.4 Patch available GHSA-h4xc-3qfq-jf93
  • pydantic-ai-slim (PyPI) Vendor— Affected 2.0.0b1 to before 2.28.0 Fixed in 2.28.0 Patch available GHSA-h4xc-3qfq-jf93

CPE configurations NVD · 2

CPEVersionsRoleVendor
cpe:2.3:a:pydantic:pydantic_ai:*:*:*:*:*:python:*:*1.34.0 to before 1.107.4Vulnerablepydantic
cpe:2.3:a:pydantic:pydantic_ai:*:-:*:*:*:python:*:*2.0.0 to before 2.28.0Vulnerablepydantic
  • cpe:2.3:a:pydantic:pydantic_ai:*:*:*:*:*:python:*:* Versions 1.34.0 to before 1.107.4 Vulnerable ·pydantic
  • cpe:2.3:a:pydantic:pydantic_ai:*:-:*:*:*:python:*:* Versions 2.0.0 to before 2.28.0 Vulnerable ·pydantic

Remediation

Upgrade pydantic-ai and pydantic-ai-slim to 1.107.4 in the 1.x line or to 2.28.0 in the 2.x line. Red Hat lists Lightspeed Core as affected with no fix available.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

  • Fix · CNA pydantic-ai (pydantic) Fixed in 1.107.4, 2.28.0
  • Fix · CNA pydantic-ai-slim (pydantic) Fixed in 1.107.4, 2.28.0
  • Fix · GHSA-h4xc-3qfq-jf93 pydantic-ai (PyPI) Fixed in 1.107.4 Advisory →
  • Fix · GHSA-h4xc-3qfq-jf93 pydantic-ai (PyPI) Fixed in 2.28.0 Advisory →
  • Fix · GHSA-h4xc-3qfq-jf93 pydantic-ai-slim (PyPI) Fixed in 1.107.4 Advisory →
  • Fix · GHSA-h4xc-3qfq-jf93 pydantic-ai-slim (PyPI) Fixed in 2.28.0 Advisory →

Vendor assessments

Red Hat

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

ProductStatusPlan or fix
Lightspeed CoreAffectedNo fix yet

Timeline

  1. 2026-10-08 Threatist record created from CVE-2026-107295
  2. 2026-10-08 Alias added: GHSA-h4xc-3qfq-jf93
  3. 2026-10-09 Affected versions changed · Red Hat
  4. 2026-10-09 CVSS score added · Red Hat

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-46990 Incorrect authorization in pydantic-ai CVSS 3.1MEDIUM 6.5
  • 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