CVE-2026-107290 json
Pydantic AI: Event loop blocked by quadratic title extraction in `web_fetch`
published last mo. modified 25d ago also EUVD-2026-95093 , GHSA-fpf4-vwcp-v4hp , PYSEC-2026-4277 , PYSEC-2026-4286
- cvss
- 6.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 43%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- pypi pydantic-ai 1.107.6, 2.44.0
- pypi pydantic-ai-slim 1.107.6, 2.44.0
- pydantic pydantic_ai 1.107.6, 2.44.0
- pydantic pydantic_ai_slim 1.107.6, 2.44.0
- github.com/pydantic/pydantic-ai@2faa618 commit
- github.com/pydantic/pydantic-ai@9cdc952 commit
- github.com/pydantic/pydantic-ai@a93ea52 commit
- github.com/pydantic/pydantic-ai@c3fd1cc commit
- github.com/pydantic/pydantic-ai@fb92ccf commit
- github.com/pydantic/pydantic-ai#8397 pull request
- github.com/pydantic/pydantic-ai#8399 pull request
- github.com/pydantic/pydantic-ai#8418 pull request
- github.com/pydantic/pydantic-ai#84332 pull request
- github.com/pydantic/pydantic-ai#8434 pull request
Is CVE-2026-107290 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-107290 updated cvss 6.5
pydantic-ai: pydantic-ai: Denial of Service via inefficient web response parsing
-
Red Hat Lightspeed Core lightspeed-core/lightspeed-stack-rhel9 Red Hat Enterprise Linux AI (RHEL AI) 3 rhelai3/bootc-cuda-rhel9, rhelai3/bootc-rocm-rhel9, rhelai3/bootc-gaudi-rhel9, rhelai3/disk-image-cuda-rhel9affected: workaround, no fix available “Fix deferred”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- last mo.
Exploit prediction
0.51% chance of exploitation in the next 30 days, higher than 43% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- github.com https://github.com/pydantic/pydantic-ai/commit/c3fd1cc1f15fdbf750d78e4e3ec1e8b4d6a3d920 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| GitHub | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| OSV | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | pydantic-ai | >=1.77.0, <1.107.6 >=2.0.0b1, <2.44.0 |
1.107.6 2.44.0 |
| pypi | pydantic-ai-slim | >=1.77.0, <1.107.6 >=2.0.0b1, <2.44.0 |
1.107.6 2.44.0 |
Affected products
- pydantic pydantic-ai
- pydantic pydantic-ai-slim
Classification
References
-
github.com
/pydantic/pydantic-ai/pull/8397
web, patch, vendor-advisory
-
github.com
/pydantic/pydantic-ai/pull/8399
web, patch, vendor-advisory
-
github.com
/pydantic/pydantic-ai/pull/8418
web, patch, vendor-advisory
-
github.com
/pydantic/pydantic-ai/pull/84332
broken-link
-
github.com
/pydantic/pydantic-ai/pull/8434
web, patch, vendor-advisory
-
github.com
/pydantic/pydantic-ai/commit/2faa6181d8a17d83bc9516d035c5270db8730fa0
web, patch
-
github.com
/pydantic/pydantic-ai/commit/9cdc952e4c3319e85a3e04f2de49fbbb765bd38b
web, patch
-
github.com
/pydantic/pydantic-ai/commit/a93ea5226be1e93ae13131ae3f22287190411389
web, patch
-
github.com
/pydantic/pydantic-ai/commit/c3fd1cc1f15fdbf750d78e4e3ec1e8b4d6a3d920
web, exploit, patch
-
github.com
/pydantic/pydantic-ai/commit/fb92ccfc3ca2735dab877e2ed73856681bf72ad1
web, patch
-
github.com
/pydantic/pydantic-ai/releases/tag/v1.107.6
web, patch, release-notes, vendor-advisory
-
github.com
/pydantic/pydantic-ai/releases/tag/v2.44.0
web, patch, release-notes, vendor-advisory
-
github.com
/pydantic/pydantic-ai/pull/8433
web
-
github.com
/pydantic/pydantic-ai/security/advisories/GHSA-fpf4-vwcp-v4hp
web, vendor-advisory
-
github.com
/pydantic/pydantic-ai
package
-
pypi.org
/project/pydantic-ai
package
-
github.com
/advisories/GHSA-fpf4-vwcp-v4hp
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-107290
advisory
-
pypi.org
/project/pydantic-ai-slim
package
Sources
- CVE List CVE-2026-107290
- GitHub Advisory GHSA-fpf4-vwcp-v4hp
- NVD CVE-2026-107290
- OSV PYSEC-2026-4277
- OSV PYSEC-2026-4286
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.