IT SBIT Services
Schneeberger
DEEN
CVE tracker

Authlib: Forged JWT tokens via empty HMAC key

CVE-2026-114616Critical 9.1

← All vulnerabilities

Summary

Authlib, a Python library for OAuth and OpenID Connect, accepts an empty HMAC key for HS256, HS384 and HS512 signatures. If an application loads its verification secret from a source that can return an empty value, an attacker can compute a valid signature for arbitrary token claims without knowing any secret. Authlib then treats the forged token as authentic, which can lead to authentication bypass, for example through elevated scopes or impersonation of other users.

Affected

  • Authlib versions before 1.9.1
  • Sources disagree on the exact range (advisory: <= 1.7.2; others: before 1.9.1 or up to 1.9.0). Treat all versions before 1.9.1 as affected.

Fixed in

  • Authlib 1.9.1 (rejects empty oct key material)

Workaround

  • Ensure HMAC verification keys are never empty or unset; fail closed if a secret lookup returns nothing.
  • Restrict accepted algorithms to asymmetric ones where possible, so HS256, HS384 and HS512 are not accepted.

Exploitation

  • Advisory and root-cause analysis are public; no public exploit known.
  • Not listed in CISA KEV. CISA SSVC: exploitation none, not automatable.
  • Exploitation requires an application that verifies tokens with an empty key.

Our recommendation

  • Inventory Python projects and lockfiles, including transitive dependencies, for authlib below 1.9.1.
  • Upgrade to Authlib 1.9.1 or later.
  • Verify that no HMAC key can be empty and that tokens are validated with the expected algorithms.
  • Review internet-facing OAuth/OIDC and API services and monitor for unexpected token use.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 05:28.

Original description (NVD)

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.9.1, Authlib's OctKey.import_key() and HMAC signing and verification path accept zero-length key material. If an application's secret lookup can return an empty string or empty bytes, a remote attacker can compute the deterministic HS256, HS384, or HS512 signature for arbitrary token claims and have Authlib treat the token as authentic. This issue is fixed in version 1.9.1.

NVD references (3)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.