Cloudanix VulnDB

CVE-2025-59420

None

CVSS

—

EPSS

0.3%

Published

Sep 22, 2025

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in a Python library used for secure login tokens could let attackers slip past security checks when different systems handle the same tokens differently.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Privilege Gain
Component
Library
Class
Authentication Bypass
Remediation
Upgrade
Effort
Low
Patch risk
Low

What it actually does

JWS verification accepts tokens declaring unknown critical header parameters (crit), violating RFC 7515 must-understand semantics and enabling acceptance of tokens rejected by strict verifiers.

Why it matters to the business

In mixed verification environments this flaw can allow unauthorized access, token replay, or escalation of privileges, increasing operational risk for services relying on OAuth or OpenID Connect tokens.

How an attack unfolds

An attacker crafts a signed JWS token containing an unknown critical header parameter such as bork or cnf, submits it to an Authlib-based verifier that accepts the token while stricter implementations reject it, and thereby bypasses policy checks or replays the token for privilege escalation.

How to fix it

Upgrade Authlib to version 1.6.4 or later; the fix is present in commit 09a51855747c13771a74958e233a6bf1fd143741. Review and enforce consistent token validation across all verifiers in the environment.

How to confirm the fix worked

Confirm the installed Authlib version is 1.6.4 or newer; test verification behavior with a token containing an unknown critical header to ensure it is now rejected.

Typical attack path

  1. Identify services using Authlib for JWS token verification
  2. Craft a validly signed token that includes an unknown crit header value
  3. Submit the token to the target endpoint
  4. Observe acceptance where policy or other verifiers would reject it
  5. Leverage acceptance for replay, policy bypass, or privilege escalation

How to detect it

Search application and authentication logs for JWS tokens containing unexpected or unknown values in the crit header field; monitor for verification successes on tokens that declare non-standard critical parameters.

What your security team should do

  • Upgrade all Authlib installations to 1.6.4 immediately
  • Audit token validation logic for reliance on crit header enforcement
  • Implement logging of crit header values on incoming tokens
  • Test mixed-language verification fleets for consistent behavior

The record

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to version 1.6.4, Authlib’s JWS verification accepts tokens that declare unknown critical header parameters (crit), violating RFC 7515 “must‑understand” semantics. An attacker can craft a signed token with a critical header (for example, bork or cnf) that strict verifiers reject but Authlib accepts. In mixed‑language fleets, this enables split‑brain verification and can lead to policy bypass, replay, or privilege escalation. This issue has been patched in version 1.6.4.

Affected packages

Ecosystem Package Introduced Fixed
PyPI authlib 0 1.6.4
Chainguard mlflow 0 3.4.0-r1
Chainguard mlflow-bitnami 0 3.4.0-r1
Chainguard mlflow-iamguarded-compat 0 3.4.0-r1
Chainguard open-webui 0 0.6.30-r1
Chainguard open-webui-compat 0 0.6.30-r1
Chainguard pgadmin4 0 9.8-r1
Chainguard pgadmin4-oci-entrypoint 0 9.8-r1
Chainguard pgadmin4-pg12 0 9.8-r1
Chainguard pgadmin4-pg13 0 9.8-r1
Chainguard pgadmin4-pg14 0 9.8-r1
Chainguard pgadmin4-pg15 0 9.8-r1
Chainguard pgadmin4-pg16 0 9.8-r1
Chainguard pgadmin4-pg17 0 9.8-r1
Debian:11 python-authlib 0 No fix
Debian:12 python-authlib 0 No fix
Debian:13 python-authlib 0 No fix
Debian:14 python-authlib 0 1.6.4-1
Wolfi mlflow 0 3.4.0-r1
Wolfi mlflow-bitnami 0 3.4.0-r1
Wolfi mlflow-iamguarded-compat 0 3.4.0-r1
Wolfi open-webui 0 0.6.30-r1
Wolfi open-webui-compat 0 0.6.30-r1

Related vulnerabilities