Skip to content
CVE PROGRAM SOURCE RECORD7.5 High

CVE-2026-107286

Pydantic AI: Concurrency-limited models can keep their slot when a streamed request ends early

Description

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.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

pydantic pydantic-ai

  • >= 2.10.0, < 2.53.0affected

pydantic pydantic-ai-slim

  • >= 2.10.0, < 2.53.0affected

References