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