CVE-2026-28498
HighCVSS 7.5Exploitation Probability (EPSS)
Low risk14th percentile - higher than 14% of all known CVEs
Summary
A vulnerability was found in the Authlib library (versions before 1.6.9) in the validation of OpenID Connect ID Tokens. The _verify_hash function incorrectly accepts unsupported cryptographic algorithms by returning True instead of rejecting the token. This allows an attacker to bypass token integrity by providing a forged token with an unknown algorithm.
Risk Assessment
The organization is at risk of accepting forged OIDC tokens, which could lead to unauthorized access to resources and user impersonation. The flaw violates fundamental cryptographic security principles and OIDC specifications.
Recommendation
Immediately update the Authlib library to version 1.6.9 or later. After updating, verify the correctness of OIDC token validation in a test environment.
Other vulnerabilities in Authlib
See all- CVE-2026-27962Critical
A vulnerability in the Authlib library (versions prior to 1.6.9) allows an attacker to inject a JWK key into the JWT header. This enables forging arbitrary JWT tokens that pass signature verification, as the library uses the attacker-supplied key instead of a trusted server key.
- CVE-2026-28802Critical
Authlib versions 1.6.5 to 1.6.6 incorrectly passed malicious JWT tokens with 'alg: none' and an empty signature, bypassing signature verification. The issue is fixed in version 1.6.7.
Original NVD description (English source)
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.

