CVE-2026-114615
Authlib incomplete algorithm-confusion fix permits HMAC forgery with prefixed public keys
Authlib is a Python library which builds OAuth and OpenID Connect servers. From 1.3.1 until 1.9.0, OctKey.import_key() checks asymmetric-key markers only at byte zero while Authlib's PEM loaders accept leading whitespace, comments, or a byte-order mark. In deployments that use the documented mixed algorithm registry and already configure verification with PEM or certificate bytes containing such a prefix, an unauthenticated attacker who knows those same public-key bytes can use them as an HMAC secret and forge HS256 tokens with arbitrary identity or authorization claims. This is a bypass of the remediation for CVE-2024-37568. The module-level jwt object reaches OctKey.import_key() in authlib/jose/rfc7518/oct_key.py, where POSSIBLE_UNSAFE_KEYS fails to identify prefixed asymmetric key material. This issue is fixed in version 1.9.0.
- Affected
- authlib
- CVSS v3.1 NVD
- 9.1 CRITICAL
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - CVSS v3.1 GITHUB
- 7.4 HIGH
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - EPSS
- 0.21% chance of exploitation in the next 30 days, 12th percentile
- Published
- 2026-10-22
- Updated
- 2026-10-29
Proof-of-concept exploits (1)
CVE references
- authlib/authlib/commit/e3bd41cb29dcfee434453b135ffb487884baeedfPATCH
- authlib/authlib/pull/945PATCH
- authlib/authlib/releases/tag/v1.9.0REFERENCE
- authlib/authlib/security/advisories/GHSA-7vr2-2fgp-9w7pVENDOR