Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessHost malicious deeply-nested HTML page
-
ExploitInduce agent to fetch URL
-
ExecutionTrigger runaway Markdown conversion expansion
-
ImpactExhaust CPU/memory and stall process
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the application use Pydantic AI's local web_fetch_tool or the WebFetch local fallback (provider-native web fetching is NOT affected) in an affected version (pydantic-ai / pydantic-ai-slim 1.77.0-<1.107.7, or 2.0.0b1-<2.52.0). The attacker must get the model/agent to fetch an attacker-controlled URL whose response is HTML containing deeply nested block elements (e.g. nested <dd>, <blockquote>, <li>, <div>) that trigger repeated reprocessing during HTML-to-Markdown conversion. Limiting factors: the attack depends on the agent being directed to fetch the malicious URL (UI:R), is confined to availability/resource exhaustion with no data exposure, and is fully nullified by upgrading to 1.107.7 or 2.52.0 or by relying on provider-native fetching. |
| Impact | This is a medium-severity denial-of-service issue (CVSS 6.5, CWE-400) whose signals are largely consistent and point to a real-but-bounded risk rather than a top-tier emergency. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H correctly reflects an unauthenticated (PR:N), low-complexity, availability-only flaw that nonetheless requires interaction (UI:R): an AI agent must be directed by the model to fetch an attacker-controlled URL. No EPSS score, KEV listing, or POC was provided in the input, so there is no evidence of active exploitation or weaponization - exploitation status is 'no public exploit identified at time of analysis.' The impact is confined to availability with no confidentiality or integrity loss, and the vendor itself describes the effect as delaying other work in the process (GIL contention / CPU and memory expansion during HTML-to-Markdown conversion) rather than a full crash, so A:H is the conservative upper bound. Mitigating the urgency: the issue only affects the local web_fetch_tool and the WebFetch local fallback - provider-native web fetching is explicitly unaffected - and a vendor patch is already available (1.107.7 and 2.52.0). Overall this is a legitimate hardening priority for anyone running agents that fetch untrusted web content locally, but not a widespread-exploitation emergency. The UI:R requirement plus the availability-only impact mean it is better treated as a resilience/abuse-prevention fix than a critical RCE-class vulnerability. |
| Exploit ScenarioDerived | An attacker publishes a web page containing deeply nested HTML block elements (for example many nested <dd>, <blockquote>, or <li> tags) and gets an AI agent to fetch it - e.g. via a prompt-injection or by seeding a URL the agent is likely to retrieve. When the local web_fetch_tool or WebFetch local fallback converts that HTML to Markdown, the converter repeatedly reprocesses accumulated text and expands a small (~600 KB) page into tens of megabytes, consuming CPU/memory and stalling the process. No public exploit or active exploitation is identified at time of analysis, though the fix PR diffs and conversion-cost benchmarks are public. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Denial of service in Pydantic AI's local web_fetch_tool and WebFetch local fallback allows an attacker-controlled HTML page, fetched on the model's behalf, to burn excessive CPU and memory during HTML-to-Markdown conversion (CVSS 3.1 6.5, AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H; CWE-400). Affected are pydantic-ai and pydantic-ai-slim from 1.77.0 through 1.107.6, and from 2.0.0b1 through 2.51.x (fixed in 1.107.7 and 2.52.0); provider-native web fetching is not affected, and no public exploit code has been identified at time of analysis, with no KEV listing. Because the fetch must be induced through the agent (UI:R), the realistic exposure is a stalled or resource-starved agent process rather than a remotely triggerable crash, and EPSS-style urgency is correspondingly moderate.
RemediationAI
Vendor-released patch: upgrade to pydantic-ai / pydantic-ai-slim 1.107.7 (1.x line) or 2.52.0 (2.x line); these releases add pre-conversion cost estimation that rejects oversized documents with ModelRetry('the document is too complex'), as implemented in PRs https://github.com/pydantic/pydantic-ai/pull/8984 and https://github.com/pydantic/pydantic-ai/pull/8985 (commits 2b247add4950bef61d352e7ca8aefbd20539180c and 2fd38792693da00a3ca5412aeffb436787af3545), per advisory GHSA-v36g-jcw9-x7cw. If upgrading immediately is not possible, the most effective compensating control is to switch to provider-native web fetching, which is explicitly unaffected; doing so moves retrieval outside the local conversion path but trades away local control over fetching and may incur provider-specific behavior or cost. Alternatively, disable or remove the local web_fetch_tool from agent tool sets (removing legitimate fetch capability entirely), or restrict fetches to an allowlist of trusted domains and deny arbitrary user/model-supplied URLs (reducing exposure but not eliminating nested-HTML abuse from allowed hosts). Running the agent worker under OS-level CPU and memory limits (cgroups, container limits, or a supervised subprocess) bounds the blast radius of a hostile page at the cost of potentially terminating legitimate long-running conversions, and applying short fetch deadlines plus upstream response-size caps before parsing reduces, though does not fully remove, the conversion amplification window.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 4 packages in pypi, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is an uncontrolled resource consumption (CWE-400) issue in the HTML-to-Markdown conversion path of Pydantic AI's local web fetching tooling. The converter wraps BeautifulSoup-style parsing plus a markdownify-derived MarkdownConverter, which repeatedly walks back up the parsed tree and rescans each descendant's already-converted text; block-level constructs such as <dd>, <blockquote>, <li> and <div> additionally add indentation at every nesting level. When an attacker-controlled page nests deeply enough, the conversion both reprocesses accumulated text and expands intermediate output far beyond the size of the returned-content limit, which is only applied after conversion completes. The upstream fix (PRs 8984 and 8985, commits 2b247add4950bef61d352e7ca8aefbd20539180c and 2fd38792693da00a3ca5412aeffb436787af3545) pre-walks the tree to estimate conversion cost, aborting with a ModelRetry('the document is too complex') when estimated work exceeds _MAX_HTML_CONVERSION_COST (20,000,000) or _MAX_HTML_TEXT_SCAN_COST (5,000,000,000). Affected CPEs are pydantic:pydantic-ai and pydantic:pydantic-ai-slim; EUVD record EUVD-2026-95075 lists the same version ranges.
Know when Pydantic Ai gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Remote, unauthenticated, low-complexity resource exhaustion, but UI:R because an agent must be directed to fetch the malicious URL; availability-only (A:H), no C/I impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.77.0 until 1.107.7 and 2.52.0, the local web_fetch_tool and the WebFetch local fallback can consume excessive CPU and memory during HTML-to-Markdown conversion of attacker-controlled HTML containing deeply nested block elements. Conversion repeatedly reprocesses accumulated text and can greatly expand intermediate output before the returned-content limit is applied, allowing a model-directed fetch to delay other work in the process. Provider-native web fetching is not affected. This issue is fixed in versions 1.107.7 and 2.52.0.
Blast Radius
ecosystem impact- 3 pypi packages depend on pydantic-ai (2 direct, 1 indirect)
- 7 pypi packages depend on pydantic-ai-slim (4 direct, 3 indirect)
Ecosystem-wide dependent count for version 1.77.0 and other introduced versions.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in Pydantic Ai
View allPydantic AI versions 0.0.26 through 1.55.x contain a server-side request forgery vulnerability in URL download functiona
Cross-site request forgery in Pydantic AI's development web chat UI allows any website a developer happens to visit whil
Concurrency slot exhaustion in Pydantic AI 2.10.0 through 2.52.x lets streamed model requests permanently occupy slots i
Server-Side Request Forgery in Pydantic AI (versions 1.56.0-1.101.0, 2.0.0b1, 2.0.0b2) allows unauthenticated network at
Server-side request forgery in Pydantic AI's URL-fetching guards lets an application that has explicitly opted a URL int
Server-Side Request Forgery in Pydantic AI's UI adapter layer (versions 1.65.0-1.105.0 and 2.0.0b1-2.0.0b5) allows unaut
Pydantic AI, a Python framework for building Generative AI agents, buffers complete HTTP response bodies before applying
Denial of service in Pydantic AI (pydantic-ai and pydantic-ai-slim) versions 1.77.0 through 1.107.5 and 2.0.0b1 through
Tool call injection in Pydantic AI's UI adapters (AG-UI via Agent.to_ag_ui()/AGUIAdapter, and Vercel AI via VercelAIAdap
DNS rebinding against the Pydantic AI development web chat server (Agent.to_web() and `clai web`) lets a hostile website
Pydantic AI versions 1.34.0 through 1.50.x contain a path traversal vulnerability in the web UI that allows unauthentica
A domain-denylist bypass in Pydantic AI's local web-fetch tooling (web_fetch_tool and the WebFetch local fallback) lets
EUVD-2026-95075
GHSA-v36g-jcw9-x7cw
NVD
CVE.org
EPSS
VulDB
Exploit-DB