Pydantic AI Web chat UI (`Agent.to_web()`, `clai web`): the local chat endpoint does not validate the `Host` header
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 2.0.0b1, 2.30.0, 1.107.5
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.34.0 until 2.30.0, the Agent.to_web() and clai web development chat server does not validate the Host header, allowing a website visited by a developer to use DNS rebinding to reach a loopback-hosted agent as a same-origin service. The hostile page can read the served UI and submit chat requests that execute agent tools with the local process's privileges and credentials, causing data disclosure or unwanted side effects. Binding to localhost, Origin checks, and CSRF tokens do not prevent the same-origin DNS rebinding path. This issue is fixed in versions 1.107.5 and 2.30.0.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- pydantic pydantic-ai
From 1.34.0 · fixed in 2.0.0b1; From 2.0.0b1 · fixed in 2.30.0
- pydantic pydantic-ai-slim
From 1.34.0 · fixed in 2.0.0b1; From 2.0.0b1 · fixed in 2.30.0
- pydantic-aiPyPI
From 1.34.0 · fixed in 1.107.5
- pydantic-aiPyPI
From 2.0.0b1 · fixed in 2.30.0
- pydantic-ai-slimPyPI
From 1.34.0 · fixed in 1.107.5
- pydantic-ai-slimPyPI
From 2.0.0b1 · fixed in 2.30.0
- pydantic-aiPyPI
From 1.34.0 · fixed in 1.107.5; From 2.0.0b1 · fixed in 2.30.0
- pydantic-ai-slimPyPI
From 1.34.0 · fixed in 1.107.5; From 2.0.0b1 · fixed in 2.30.0