Skip to content

Update dependencies to clear published advisories - #14

Merged
dabeckham merged 1 commit into
mainfrom
chore/dependency-security-updates
Jul 26, 2026
Merged

Update dependencies to clear published advisories#14
dabeckham merged 1 commit into
mainfrom
chore/dependency-security-updates

Conversation

@dabeckham

Copy link
Copy Markdown
Owner

What

Bumps three pinned dependencies that carry published advisories at the versions
currently deployed.

Package From To Why
authlib 1.4.0 1.7.2 10 advisories, incl. CVE-2026-27962 (JWS JWK header injection → signature-verification bypass, CRITICAL) and CVE-2026-28498 (fail-open verification in OIDC hash binding). Implements the sign-in path.
python-multipart 0.0.20 0.0.32 7 advisories — DoS and parameter smuggling in multipart parsing. Parses the anonymous upload form, so it is reachable pre-auth.
jinja2 3.1.5 3.1.6 CVE-2025-27516 — sandbox escape via the attr filter.

All three targets are clear of known advisories. The remaining pins in
requirements.txt were checked the same way and are clean.

Why it matters here

The repository is public, so the pinned versions are readable — an attacker
skips reconnaissance. authlib sits on the authentication path and
python-multipart sits on the one endpoint an unauthenticated visitor can
reach with a body.

Verification

  • Backend suite (25 tests) against a real PostgreSQL database, with the new
    versions installed: pass.
  • Real-path check against the live identity provider, not just unit tests: a
    staging container built from this branch drives /login, the new Authlib
    builds the authorization request (response_type=code, canonical
    redirect_uri, openid profile email groups scope), and Authentik accepts it
    and hands off to its login flow.
  • Not yet exercised: the post-login callback (token exchange, ID-token
    validation, groups claim). That leg needs an interactive sign-in and should
    be confirmed after deploy.

Risk

No application code changes. The Authlib client API used here
(OAuth.register, authorize_redirect, authorize_access_token, userinfo)
is unchanged across the jump; the internals moved to joserfc, which this app
never imports.

Three pinned dependencies carry known vulnerabilities at their current
versions. Verified against the OSV database and the running image, so these
are the versions actually deployed, not just what the lockfile claims.

- authlib 1.4.0 -> 1.7.2. Ten advisories apply to 1.4.0, including
  CVE-2026-27962 (JWS JWK header injection allowing signature-verification
  bypass) and CVE-2026-28498 (fail-open verification in OIDC hash binding).
  This library implements the sign-in path, so it is the highest-value
  target in the tree. The client API used here (OAuth.register,
  authorize_redirect, authorize_access_token, userinfo) is unchanged across
  the jump; the internals moved to joserfc, which the app never imports.
- python-multipart 0.0.20 -> 0.0.32. Seven advisories, several of them
  denial-of-service and parameter-smuggling issues in multipart parsing.
  This one parses the anonymous upload form, so it is reachable pre-auth by
  anyone on the internet.
- jinja2 3.1.5 -> 3.1.6. CVE-2025-27516, a sandbox escape via the attr
  filter.

All three target versions are clear of known advisories. Verified with the
backend suite against a real PostgreSQL database, and by driving the live
Authentik provider: the app builds the authorization request through the new
Authlib and the identity provider accepts it and hands off to its login flow.
@dabeckham
dabeckham merged commit 74a5e4c into main Jul 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant