Pydantic-AI v2.44.0 Addresses Four Security Vulnerabilities and Adds New Features
Pydantic-AI v2.44.0 has been released, providing critical security fixes for vulnerabilities found in `web_fetch_tool` and OpenTelemetry instrumentation. These updates address issues like IPv6 zone identifier bypasses, superlinear processing in `web_fetch`, incorrect domain comparisons, and data leakage in instrumentation. The release also introduces new features, including a Vercel AI SDK and Eve migration skill, a stable `AgentRunResult` serialization, and a `Storage` page for persistence. This update is important for users of Pydantic-AI, particularly those relying on its web fetching and instrumentation capabilities, and is available for both v2.44.0 (v2) and v1.107.6 (v1).
- →Add a Vercel AI SDK and Eve migration skill by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/8357
- →Add a Storage page so persistence is findable by @DouweM in https://github.com/pydantic/pydantic-ai/pull/8336
- →Emit EnqueuedMessagesEvent when a realtime session delivers enqueued content by @DouweM in https://github.com/pydantic/pydantic-ai/pull/8134
- →Forward blocked_domains to OpenAI web search by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/8323
- →Fix OpenAI hosted tool_search pairing in AG-UI by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/8313
Security (4) ›
GHSA-vmxc-h2x2-jmf3 (moderate): the cloud-metadata and private-IP blocklists could be bypassed with an IPv6 zone identifier on a URL opted into local network access, via FileUrl(force_download='allow-local') or web_fetch_tool(allow_local_urls=True). Both are off by default. Reported by @euriconicacio. (#8401)
GHSA-fpf4-vwcp-v4hp (moderate): web_fetch processed responses in superlinear time on the event loop, in both the HTML conversion and the charset decode, so a single attacker-chosen page could stall every agent in the process. Reported by @BrianWillows. (#8397, #8418, #8433)
GHSA-22h6-qm39-v87j (low): web_fetch_tool's domain lists were compared as written rather than in the form the resolver uses, so a blocked domain could be reached under another spelling. (#8407, #8421)
GHSA-4x9p-g9wm-8q7f (low): with InstrumentationSettings(include_content=False), spans still carried exceptions, error statuses, instructions and the output template. Reported by @BrianWillows. (#8403, #8408, #8419, #8428)
Features (4) ›
- Add a Vercel AI SDK and Eve migration skill by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/8357
Give AgentRunResult a stable serialized shape, and settle a finished stream into one by @DouweM in https://github.com/pydantic/pydantic-ai/pull/8269
- Add a Storage page so persistence is findable by @DouweM in https://github.com/pydantic/pydantic-ai/pull/8336
- Emit EnqueuedMessagesEvent when a realtime session delivers enqueued content by @DouweM in https://github.com/pydantic/pydantic-ai/pull/8134
Fixes (7) ›
- Forward blocked_domains to OpenAI web search by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/8323
- Fix OpenAI hosted tool_search pairing in AG-UI by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/8313
Let Agent.from_spec() construct without a model, deferring the requirement to run time by @DouweM in https://github.com/pydantic/pydantic-ai/pull/8339
Let RealtimeSession.close() finish its teardown when the closing task is cancelled by @DouweM in https://github.com/pydantic/pydantic-ai/pull/8142
Run a capability's prepare_tools over every tool the availability gate admits by @DouweM in https://github.com/pydantic/pydantic-ai/pull/8071
- Bound the realtime session event queue while nothing is iterating it by @DouweM in https://github.com/pydantic/pydantic-ai/pull/8133
- Report a run's own usage on its span, not the conversation total by @DouweM in https://github.com/pydantic/pydantic-ai/pull/8417
https://github.com/pydantic/pydantic-ai/releases/tag/v2.44.0
Related releases
- Pydantic AI v1.107.6 Delivers Critical Security Fixes Backported from v2.44.0 Pydantic AI Releases ·
- CrewAI 1.15.22 Enhances Agent Capabilities and Adds New LLM Integrations CrewAI Releases ·
- ADK Python v2.9.1 Enhances Visibility into Claude's Reasoning Steps Google ADK (Python) Releases ·
- Pydantic-AI v2.43.0 Enhances CLI Experience and Fixes OpenAI Chat Model Behavior Pydantic AI Releases ·
- ADK-Python v2.9.0 enhances agent resilience, voice integration, and workflow management Google ADK (Python) Releases ·
- CrewAI 1.15.21 Release Introduces Telemetry and Resolves Multiple Bugs CrewAI Releases ·