CVE-2026-107292: Pydantic AI web chat UI Host header validation bypass

CVE-2026-107292 · Severity: medium · CVSS 6.4 · Published 2026-10-08

Pydantic AI's web chat interface for developers (used by Agent.to_web() and clai web) does not validate the Host header in incoming requests. An attacker can use DNS rebinding to trick a developer's browser into treating requests to a local chat UI as same-origin, allowing malicious websites to trigger the agent to execute its tools with the developer's local privileges and credentials. This could lead to unauthorized access to data or unintended tool execution.

Technologies: Pydantic AI, Pydantic AI Slim, pydantic-ai (PyPI), pydantic-ai-slim (PyPI). Vendors: Pydantic, PyPI.

Quick answers

Is CVE-2026-107292 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-107292 being exploited in the wild.
How severe is CVE-2026-107292?
Medium severity, with a CVSS score of 6.4, published 8 October 2026.
Which products and versions are affected?
Pydantic AI before 2.30.0; v1 before 1.107.5; Pydantic AI Slim before 2.30.0; v1 before 1.107.5; pydantic-ai (PyPI) ECOSYSTEM:introduced=1.34.0,fixed=1.107.5,introduced=2.0.0b1,fixed=2.30.0; pydantic-ai-slim (PyPI) ECOSYSTEM:introduced=1.34.0,fixed=1.107.5,introduced=2.0.0b1,fixed=2.30.0.
Is there a fix for CVE-2026-107292?
Yes. pydantic-ai (PyPI): upgrade to 2.30.0 or later; pydantic-ai-slim (PyPI): upgrade to 2.30.0 or later. Until then: If serving the web chat UI behind a reverse proxy or tunnel under a real hostname, explicitly allowlist the hostname using the allowed_hosts parameter: agent.to_web(allowed_hosts=['ui.example.com']). Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-107292 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-107292?
Check whether you run Pydantic AI, Pydantic AI Slim, pydantic-ai (PyPI) or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • pydantic-ai (PyPI): upgrade to 2.30.0 or later
    pip install "pydantic-ai>=2.30.0"
  • pydantic-ai-slim (PyPI): upgrade to 2.30.0 or later
    pip install "pydantic-ai-slim>=2.30.0"

If serving the web chat UI behind a reverse proxy or tunnel under a real hostname, explicitly allowlist the hostname using the allowed_hosts parameter: agent.to_web(allowed_hosts=['ui.example.com']).

Technical details

The vulnerability is a missing Host header validation in the web chat UI endpoint. An attacker uses DNS rebinding to resolve a domain under their control to the loopback address (127.0.0.1), causing the browser to treat requests as same-origin and bypass CSRF protections. The served agent then executes tools with the local process's privileges. Binding the UI to localhost does not mitigate this; the fix validates the Host header and rejects non-allowlisted hosts with a 421 Misdirected Request response.

Affected products

  • Pydantic pydantic-ai before 2.30.0; v1 before 1.107.5
  • Pydantic pydantic-ai-slim before 2.30.0; v1 before 1.107.5

Identifiers

  • CVE-2026-107292
  • GHSA-q2xc-rrxj-58x9
  • PYSEC-2026-4279
  • PYSEC-2026-4288

Timeline

  • 2026-10-08: disclosed
  • 2026-10-08: patched

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.