v1.107.4
pydantic/pydantic-aiv1.107.4Aug 12, 2026by dsfaccini
AI Summary
Backports security fixes from v2.28.0 regarding Content-Type validation and retry prompt redaction, plus a build-tooling resolution note.
Key Highlights
- Fix for high-severity Content-Type validation vulnerability (GHSA-h4xc-3qfq-jf93)
- Fix for retry prompt redaction (GHSA-3gh4-cghq-f8v4)
- v1.107.3 deleted due to build-tooling issue, v1.107.4 carries fixes
Full Release Notes
> **Note:** an earlier `v1.107.3` tag/release was cut and deleted tonight — a build-tooling issue ([#7394](https://github.com/pydantic/pydantic-ai/pull/7394): `hatchling` 1.32.0 emitted a package-metadata version PyPI's publish validator didn't yet accept) blocked its publish before anything reached PyPI, so nothing under that version number was ever installable. This release (`1.107.4`) carries the same fixes with the build issue resolved. ### 🛡️ Security This release backports two security fixes to the v1 line: - **[GHSA-h4xc-3qfq-jf93](https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-h4xc-3qfq-jf93)** (high) — the development web chat UI's (`Agent.to_web()`, `clai web`) chat endpoint didn't check the request's content type, so a plain cross-origin request from a website open in the developer's browser could reach it without a CORS preflight and trigger the served agent to run and execute its tools with the local process's privileges and credentials. The endpoint now requires `Content-Type: application/json`. - **[GHSA-3gh4-cghq-f8v4](https://github.com/pydantic/pydantic-ai/security/advisories/GHSA-3gh4-cghq-f8v4)** (low) — retry-prompt content wasn't redacted by `InstrumentationSettings(include_content=False)` when the retry wasn't tied to a tool call. Patched in `1.107.4`; both are also patched on the v2 line (`2.28.0` and `2.27.1` respectively). ## What's Changed ### 🐛 Bug Fixes * Backport #7357 to `v1` by @DouweM in https://github.com/pydantic/pydantic-ai/pull/7381 * Only accept JSON request bodies on the web UI chat endpoint (v1 backport) by @DouweM in https://github.com/pydantic/pydantic-ai/pull/7383 **Full Changelog**: https://github.com/pydantic/pydantic-ai/compare/v1.107.2...v1.107.4