---
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'
  - url: 'https://github.com/pydantic/pydantic-ai'
tags:
  - nvd
  - cve.org
  - ghsa
  - pip
  - osv
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'
---

## Overview

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 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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-107286)

Affected packages:

- `pydantic-ai >= 2.10.0, < 2.53.0`
- `pydantic-ai-slim >= 2.10.0, < 2.53.0`

Patched in:

- `pydantic-ai 2.53.0`
- `pydantic-ai-slim 2.53.0`

Source: https://github.com/advisories/GHSA-6fqq-452j-qhrp
