ETK-2026-2436Zero's internal tracking ID, independent of the CVE number.
waiting for further signalsZero needs more public information before it can validate it.description
pydantic-ai and pydantic-ai-slim releases before 1.107.9 or 2.59.0 can consume excessive worker time or process memory while converting attacker-influenced HTML fetched with web_fetch_tool. An attacker may delay other work in the process or exhaust available memory when the application allows them to influence fetched HTML, such as by choosing a URL.
mitigation
Upgrade pydantic-ai or pydantic-ai-slim to 1.107.9 or 2.59.0, or a later release on the corresponding major line. Until upgraded, do not use web_fetch_tool to fetch attacker-controlled HTML.
fixed in 1.107.9, 2.59.0
outcome
Contextual: an exploit technique exists, but no deterministic check could cover this one.
source signals
Public signals that triggered or updated the pipeline. These are inputs for the deltas above.
- 2026-10-21 05:06Zghsa: trigger signal, started the run
this entry in the feed
GET /api/v1/feed/ETK-2026-2436
{ "etk_id": "ETK-2026-2436", "cve_id": null, "display_id": "ETK-2026-2436", "ghsa_id": "GHSA-4whf-38hw-pxxh", "euvd_id": null, "status": "published", "anchor_state": "awaiting_cve", "title": "HTML conversion denial of service in pydantic-ai web_fetch_tool", "summary": "pydantic-ai and pydantic-ai-slim releases before 1.107.9 or 2.59.0 can consume excessive worker time or process memory while converting attacker-influenced HTML fetched with web_fetch_tool. An attacker may delay other work in the process or exhaust available memory when the application allows them to influence fetched HTML, such as by choosing a URL.", "mitigation": "Upgrade pydantic-ai or pydantic-ai-slim to 1.107.9 or 2.59.0, or a later release on the corresponding major line. Until upgraded, do not use web_fetch_tool to fetch attacker-controlled HTML.", "vendor": "pip", "product": "pip:pydantic-ai", "affected": [ { "affected_notes": [], "affected_ranges": [ ">=1.77.0", "<1.107.9" ], "ecosystem": "pip", "fixed_versions": [ "1.107.9" ], "package_name": "pydantic-ai", "purl": "pkg:pypi/pydantic-ai" }, { "affected_notes": [], "affected_ranges": [ ">=2.0.0", "<2.59.0" ], "ecosystem": "pip", "fixed_versions": [ "2.59.0" ], "package_name": "pydantic-ai", "purl": "pkg:pypi/pydantic-ai" }, { "affected_notes": [], "affected_ranges": [ ">=1.77.0", "<1.107.9" ], "ecosystem": "pip", "fixed_versions": [ "1.107.9" ], "package_name": "pydantic-ai-slim", "purl": "pkg:pypi/pydantic-ai-slim" }, { "affected_notes": [], "affected_ranges": [ ">=2.0.0", "<2.59.0" ], "ecosystem": "pip", "fixed_versions": [ "2.59.0" ], "package_name": "pydantic-ai-slim", "purl": "pkg:pypi/pydantic-ai-slim" } ], "cwes": [ 400 ], "cvss_score": 7.5, "cvss_src": "cna_vendor", "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "epss_score": null, "epss_percentile": null, "epss_asof": null, "automation": "contextual", "check": false, "check_confidence_basis": null, "exploit": false, "pipeline_minutes": 12.234031283333334, "t0_at": null, "signals": { "trigger_signal": { "at": "2026-10-21T05:06:29+00:00", "days": -1.3384934971180555, "is_lower_bound": true, "measured_at": "2026-10-22T13:13:54.862706+00:00", "url": "https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-4whf-38hw-pxxh" } } }
published 2026-10-22 12:16Z
last change 2026-10-22 13:02Z
Need the technical details behind an entry?
Every entry here shows what we attempted and when. The technical details, the generated exploit that fired it and the evidence behind the verdict are not public. Tell us about your use case and we’ll get back to you about extended API access.