{"api_version":"1","generated_at":"2026-10-08T19:29:34+00:00","cve":"CVE-2026-107290","urls":{"html":"https://cve.report/CVE-2026-107290","api":"https://cve.report/api/cve/CVE-2026-107290.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-107290","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-107290"},"summary":{"title":"Pydantic AI: Event loop blocked by quadratic title extraction in `web_fetch`","description":"Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.77.0 until 1.107.6 and 2.44.0, the local web_fetch_tool and the WebFetch local fallback process server-controlled responses with quadratic title extraction, whitespace normalization, and ordered-list numbering. An attacker-controlled page of modest size can therefore block the event loop for an extended period, stalling other agent runs and requests, while unsupported codecs or excessive HTML or JSON nesting can abort an individual run. This issue is fixed in versions 1.107.6 and 2.44.0.","state":"PUBLISHED","assigner":"GitHub_M","published_at":"2026-10-08 17:17:14","updated_at":"2026-10-08 17:17:14"},"problem_types":["CWE-1333","CWE-1333 CWE-1333: Inefficient Regular Expression Complexity"],"metrics":[{"version":"3.1","source":"security-advisories@github.com","type":"Secondary","score":"6.5","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","baseScore":6.5,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"6.5","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","data":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":6.5,"baseSeverity":"MEDIUM","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","version":"3.1"}}],"references":[{"url":"https://github.com/pydantic/pydantic-ai/commit/c3fd1cc1f15fdbf750d78e4e3ec1e8b4d6a3d920","name":"https://github.com/pydantic/pydantic-ai/commit/c3fd1cc1f15fdbf750d78e4e3ec1e8b4d6a3d920","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/pydantic/pydantic-ai/pull/8418","name":"https://github.com/pydantic/pydantic-ai/pull/8418","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/pydantic/pydantic-ai/pull/8399","name":"https://github.com/pydantic/pydantic-ai/pull/8399","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.44.0","name":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.44.0","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/pydantic/pydantic-ai/commit/a93ea5226be1e93ae13131ae3f22287190411389","name":"https://github.com/pydantic/pydantic-ai/commit/a93ea5226be1e93ae13131ae3f22287190411389","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/pydantic/pydantic-ai/commit/fb92ccfc3ca2735dab877e2ed73856681bf72ad1","name":"https://github.com/pydantic/pydantic-ai/commit/fb92ccfc3ca2735dab877e2ed73856681bf72ad1","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/pydantic/pydantic-ai/pull/84332","name":"https://github.com/pydantic/pydantic-ai/pull/84332","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/pydantic/pydantic-ai/pull/8434","name":"https://github.com/pydantic/pydantic-ai/pull/8434","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/pydantic/pydantic-ai/commit/2faa6181d8a17d83bc9516d035c5270db8730fa0","name":"https://github.com/pydantic/pydantic-ai/commit/2faa6181d8a17d83bc9516d035c5270db8730fa0","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v1.107.6","name":"https://github.com/pydantic/pydantic-ai/releases/tag/v1.107.6","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/pydantic/pydantic-ai/commit/9cdc952e4c3319e85a3e04f2de49fbbb765bd38b","name":"https://github.com/pydantic/pydantic-ai/commit/9cdc952e4c3319e85a3e04f2de49fbbb765bd38b","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/pydantic/pydantic-ai/pull/8397","name":"https://github.com/pydantic/pydantic-ai/pull/8397","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-fpf4-vwcp-v4hp","name":"https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-fpf4-vwcp-v4hp","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-107290","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-107290","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"pydantic","product":"pydantic-ai","version":"affected >= 1.77.0, < 1.107.6","platforms":[]},{"source":"CNA","vendor":"pydantic","product":"pydantic-ai","version":"affected >= 2.0.0b1, < 2.44.0","platforms":[]},{"source":"CNA","vendor":"pydantic","product":"pydantic-ai-slim","version":"affected >= 1.77.0, < 1.107.6","platforms":[]},{"source":"CNA","vendor":"pydantic","product":"pydantic-ai-slim","version":"affected >= 2.0.0b1, < 2.44.0","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"product":"pydantic-ai","vendor":"pydantic","versions":[{"status":"affected","version":">= 1.77.0, < 1.107.6"},{"status":"affected","version":">= 2.0.0b1, < 2.44.0"}]},{"product":"pydantic-ai-slim","vendor":"pydantic","versions":[{"status":"affected","version":">= 1.77.0, < 1.107.6"},{"status":"affected","version":">= 2.0.0b1, < 2.44.0"}]}],"descriptions":[{"lang":"en","value":"Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.77.0 until 1.107.6 and 2.44.0, the local web_fetch_tool and the WebFetch local fallback process server-controlled responses with quadratic title extraction, whitespace normalization, and ordered-list numbering. An attacker-controlled page of modest size can therefore block the event loop for an extended period, stalling other agent runs and requests, while unsupported codecs or excessive HTML or JSON nesting can abort an individual run. This issue is fixed in versions 1.107.6 and 2.44.0."}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":6.5,"baseSeverity":"MEDIUM","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-1333","description":"CWE-1333: Inefficient Regular Expression Complexity","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-10-08T16:09:04.272Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M"},"references":[{"name":"https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-fpf4-vwcp-v4hp","tags":["x_refsource_CONFIRM"],"url":"https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-fpf4-vwcp-v4hp"},{"name":"https://github.com/pydantic/pydantic-ai/pull/8397","tags":["x_refsource_MISC"],"url":"https://github.com/pydantic/pydantic-ai/pull/8397"},{"name":"https://github.com/pydantic/pydantic-ai/pull/8399","tags":["x_refsource_MISC"],"url":"https://github.com/pydantic/pydantic-ai/pull/8399"},{"name":"https://github.com/pydantic/pydantic-ai/pull/8418","tags":["x_refsource_MISC"],"url":"https://github.com/pydantic/pydantic-ai/pull/8418"},{"name":"https://github.com/pydantic/pydantic-ai/pull/84332","tags":["x_refsource_MISC"],"url":"https://github.com/pydantic/pydantic-ai/pull/84332"},{"name":"https://github.com/pydantic/pydantic-ai/pull/8434","tags":["x_refsource_MISC"],"url":"https://github.com/pydantic/pydantic-ai/pull/8434"},{"name":"https://github.com/pydantic/pydantic-ai/commit/2faa6181d8a17d83bc9516d035c5270db8730fa0","tags":["x_refsource_MISC"],"url":"https://github.com/pydantic/pydantic-ai/commit/2faa6181d8a17d83bc9516d035c5270db8730fa0"},{"name":"https://github.com/pydantic/pydantic-ai/commit/9cdc952e4c3319e85a3e04f2de49fbbb765bd38b","tags":["x_refsource_MISC"],"url":"https://github.com/pydantic/pydantic-ai/commit/9cdc952e4c3319e85a3e04f2de49fbbb765bd38b"},{"name":"https://github.com/pydantic/pydantic-ai/commit/a93ea5226be1e93ae13131ae3f22287190411389","tags":["x_refsource_MISC"],"url":"https://github.com/pydantic/pydantic-ai/commit/a93ea5226be1e93ae13131ae3f22287190411389"},{"name":"https://github.com/pydantic/pydantic-ai/commit/c3fd1cc1f15fdbf750d78e4e3ec1e8b4d6a3d920","tags":["x_refsource_MISC"],"url":"https://github.com/pydantic/pydantic-ai/commit/c3fd1cc1f15fdbf750d78e4e3ec1e8b4d6a3d920"},{"name":"https://github.com/pydantic/pydantic-ai/commit/fb92ccfc3ca2735dab877e2ed73856681bf72ad1","tags":["x_refsource_MISC"],"url":"https://github.com/pydantic/pydantic-ai/commit/fb92ccfc3ca2735dab877e2ed73856681bf72ad1"},{"name":"https://github.com/pydantic/pydantic-ai/releases/tag/v1.107.6","tags":["x_refsource_MISC"],"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v1.107.6"},{"name":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.44.0","tags":["x_refsource_MISC"],"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.44.0"}],"source":{"advisory":"GHSA-fpf4-vwcp-v4hp","discovery":"UNKNOWN"},"title":"Pydantic AI: Event loop blocked by quadratic title extraction in `web_fetch`"}},"cveMetadata":{"assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","assignerShortName":"GitHub_M","cveId":"CVE-2026-107290","datePublished":"2026-10-08T16:09:04.272Z","dateReserved":"2026-10-07T15:53:23.586Z","dateUpdated":"2026-10-08T16:09:04.272Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-08 17:17:14","lastModifiedDate":"2026-10-08 17:17:14","problem_types":["CWE-1333","CWE-1333 CWE-1333: Inefficient Regular Expression Complexity"],"metrics":{"cvssMetricV31":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","baseScore":6.5,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH"},"exploitabilityScore":2.8,"impactScore":3.6}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"107290","Ordinal":"1","Title":"Pydantic AI: Event loop blocked by quadratic title extraction in","CVE":"CVE-2026-107290","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"107290","Ordinal":"1","NoteData":"Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.77.0 until 1.107.6 and 2.44.0, the local web_fetch_tool and the WebFetch local fallback process server-controlled responses with quadratic title extraction, whitespace normalization, and ordered-list numbering. An attacker-controlled page of modest size can therefore block the event loop for an extended period, stalling other agent runs and requests, while unsupported codecs or excessive HTML or JSON nesting can abort an individual run. This issue is fixed in versions 1.107.6 and 2.44.0.","Type":"Description","Title":"Pydantic AI: Event loop blocked by quadratic title extraction in"}]}}}