- 2026-06-14
Security hardening patch — OAuth2 iss/aud validation, fail-closed identity
binding, web app SSRF/redirect fixes, and dependency bumps. Wire protocol and
manifest schemas are unchanged from v2.4.0.
Security
- OAuth2 middleware: Validate JWT
issandaudwhenASAP_AUTH_ISSUER/ASAP_AUTH_AUDIENCE(orOAuth2Config.expected_issuer/expected_audience) are set; refactored validation throughvalidate_jwt()inasap.auth.jwks. - Identity binding: Fail-closed when
manifest_idis configured but neither custom claim norASAP_AUTH_SUBJECT_MAPallowlist matches (403 instead of warn-and-pass). - Web app (
apps/web): Block open redirects on E2E fixture login routes viaresolveRedirectUrl; harden SSRF on/api/health-check(127.0.0.0/8, DNS resolve4/6); Zod strict validation on public API query params (unknown keys return 400); rate-limit unit tests.
Fixed
- CI security (
pip-audit): Bumped transitive pins (langchain-core,langsmith,python-multipart,urllib3,pip,smolagents) and adjusted documented--ignore-vulnflags (pygments + smolagents CVEs with no PyPI fix yet; pip ≥26.1 clears prior pip ignore). See SECURITY.md. - FastAPI / Starlette: Raised
fastapifloor to>=0.136.1sostarlette>=1.0.1resolves PYSEC-2026-161 (Host header path injection) without apip-auditignore.
Migration
- v2.4.0 → v2.4.1: Security patch — bump dependencies; verify OAuth2 issuer/audience and identity binding if already configured. See
migration guide.
Full Changelog: v0.1.0...v2.4.1