$ cat fastapi/month/2026-10-01.log
the month in review · October 2026
Five Pydantic validation bypasses and a quadratic URL check
By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology
The bypasses touch extra-key handling in JSON models, aliased TypedDict and dataclass fields, and V1 dataclasses; FastAPI meanwhile made OTel setup opt-in and landed three breaking parameter changes.
Validation bypass of extra data keys in JSON model validation pydantic/pydantic
Model validation against JSON input could let extra keys through instead of rejecting them, depending on which path parsed the payload. If you rely on extra='forbid' as a boundary, that boundary leaked; check your pinned pydantic version rather than assuming the schema was enforced.
Validation bypass of aliased fields in TypedDict and dataclasses allowing extra data pydantic/pydantic
TypedDicts and dataclasses with aliased fields accepted extra data under validation. Aliasing is common when mapping external payloads, so this is the one to audit first if you feed third-party JSON into either construct.
Validation bypass of Pydantic V1 dataclasses allowing extra data pydantic/pydantic
The V1 dataclass path has the same class of gap for anyone still running pydantic.v1 shims. Same guidance: pin to a patched release, and confirm upstream actually tags it before you claim the fix.
0.143.0 fastapi/fastapi
by github-actions[bot]
FastAPI no longer configures OTel exporters from OTEL_* environment variables on its own. Set FASTAPI_OTEL_AUTO_CONFIGURE=true or pass FastAPI(telemetry={"auto_configure": True}) to keep the previous behavior. And when auto-configuration fails, startup now proceeds instead of dying, which is the reason the switch moved: instrumentation problems should not be able to take your app down.
0.155.0 fastapi/fastapi
by github-actions[bot]
Path, Query, Header, Cookie, Body, Form and File no longer swallow unknown keyword arguments. Anything you passed as Query(custom="value") now raises TypeError at import time, which makes it a fast failure; move those to json_schema_extra. This is the breaking change most likely to greet you after an upgrade.
v2.14.0 2026-10-08 pydantic/pydantic
Pydantic 2.14 shipped with validation tightened around timedelta, Decimal, TypedDict inheritance, a Python 3.10.0 ForwardRef crash, and a JSON Schema cache key mismatch. The maintainers categorize several changes as non-breaking under their versioning policy, so read the list if you compare serialized schemas across versions.
0.160.0 fastapi/fastapi
by github-actions[bot]
Parameter-model extra configuration now applies to every field submitted in that location, including fields from other models, standalone parameters, and dependencies. Code that counted on those fields escaping the model's extra policy will now see it applied, so test your query and form models together rather than in isolation.
0.162.0 fastapi/fastapi
by github-actions[bot]
An omitted bool form field no longer becomes False. It takes its declared default or produces a missing-field error, matching how every other field type behaves. Checkbox-style endpoints that relied on the old inference need explicit defaults.
$ ls fastapi/month/ # the briefings behind this review
Keep up with FastAPI & Pydantic in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.
Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.