CVE-2026-28498 Authlib: Fail-Open Cryptographic Verification in OIDC Hash Binding
Attackers can bypass OIDC token integrity checks by using unsupported algorithms, allowing forged tokens to be accepted as valid.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-28498?
CVE-2026-28498 is a high-severity vulnerability in authlib, published on 16 Mar 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to version 1.6.9, a library-level vulnerability was identified in the Authlib Python library concerning the validation of OpenID Connect (OIDC) ID Tokens. Specifically, the internal hash verification logic (_verify_hash) responsible for validating the at_hash (Access Token Hash) and c_hash (Authorization Code Hash) claims exhibits a fail-open behavior when encountering an unsupported or unknown cryptographic algorithm. This flaw allows an attacker to bypass mandatory integrity protections by supplying a forged ID Token with a deliberately unrecognized alg header parameter. The library intercepts the unsupported state and silently returns True (validation passed), inherently violating fundamental cryptographic design principles and direct OIDC specifications. This issue has been patched in version 1.6.9.
Which versions are affected by CVE-2026-28498?
3 open source packages ship an affected version, including authlib. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
authlib PyPI | All versions | 1.6.9 |
authlib PyPI | All versions | 1.6.9 |
authlib PyPI | All versions | 1.6.9 |
Products include Authlib Authlib.
How do I fix CVE-2026-28498?
Upgrade authlib to 1.6.9 or later.
Is CVE-2026-28498 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-28498 exists.
Other vulnerabilities in authlib
- CVE-2026-27962 Authlib JWS JWK Header Injection: Signature Verification Bypass
- CVE-2026-28490 Authlib Vulnerable to JWE RSA1_5 Bleichenbacher Padding Oracle
- CVE-2026-28802 Authlib: Setting `alg: none` and a blank signature appears to bypass signature verification
- CVE-2025-61920 Authlib is vulnerable to Denial of Service via Oversized JOSE Segments
- CVE-2025-59420 Authlib: JWS/JWT accepts unknown crit headers (RFC violation → possible authz bypass)
Sources
Also known as DEBIAN-CVE-2026-28498, ECHO-435f-9eb9-99cb, GHSA-m344-f55w-2m6j, MINI-84m5-6586-wq2f, MINI-hr69-68cq-v4wq, PYSEC-2026-2117 and 2 more.