{"id":"CVE-2026-107286","title":"Pydantic AI is a Python agent framework for building applications and workflows with Generative AI","summary":"Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 2.10.0 until 2.53.0, streamed requests made through ConcurrencyLimitedModel or limit_model_concurrency can retain shared concurrency…","severity":"high","cvss":7.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","cwe":["CWE-772"],"vendor":"pydantic","product":"pydantic-ai","affected":["pydantic-ai >= 2.10.0, < 2.53.0","pydantic-ai-slim >= 2.10.0, < 2.53.0"],"patched":["pydantic-ai 2.53.0","pydantic-ai-slim 2.53.0"],"published":"2026-10-08","updated":"2026-10-08","sourceUpdated":"2026-10-08T20:35:31.200","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-107286","references":[{"url":"https://github.com/pydantic/pydantic-ai/commit/453f19feeb7ab1d789f9393b1723c6a73b3d77b2","label":"security-advisories@github.com"},{"url":"https://github.com/pydantic/pydantic-ai/pull/9478","label":"security-advisories@github.com"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.53.0","label":"security-advisories@github.com"},{"url":"https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-6fqq-452j-qhrp","label":"security-advisories@github.com"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-107286"},{"url":"https://github.com/advisories/GHSA-6fqq-452j-qhrp"}],"tags":["nvd","cve.org","ghsa","pip"],"aliases":["GHSA-6fqq-452j-qhrp"],"ecosystem":"pip","ssvc":{"exploitation":"none","automatable":"yes","technicalImpact":"partial","timestamp":"2026-10-08T17:26:50.651820Z"},"ingestedAt":"2026-10-08T15:49:37.990Z","slug":"CVE-2026-107286","body":"## Overview\n\nPydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 2.10.0 until 2.53.0, streamed requests made through ConcurrencyLimitedModel or limit_model_concurrency can retain shared concurrency slots because anyio.CapacityLimiter associates an acquired slot with the borrowing task while streaming cleanup can run in a different task. Early stream termination, cancellation, consumer exceptions, or complete stream_text() consumption with debounce_by=0.1 can therefore leave capacity occupied, eventually preventing later requests that share the long-lived limiter from proceeding and causing a denial of service. Agent-level max_concurrency and non-streaming model requests are not affected. This issue is fixed in version 2.53.0.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Package advisory (CVE-2026-107286)\n\nAffected packages:\n\n- `pydantic-ai >= 2.10.0, < 2.53.0`\n- `pydantic-ai-slim >= 2.10.0, < 2.53.0`\n\nPatched in:\n\n- `pydantic-ai 2.53.0`\n- `pydantic-ai-slim 2.53.0`\n\nSource: https://github.com/advisories/GHSA-6fqq-452j-qhrp","depth":"twilight","depthScore":41,"depthScoreParts":{"impact":41.3,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}