Cloudanix VulnDB

CVE-2026-114616

High · 7.4

CVSS

7.4

EPSS

0.3%

Published

Oct 22, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A Python library that handles secure logins could let attackers create fake login tokens if the app's secret key is accidentally blank, giving them access they shouldn't have.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Moderate
Impact
Full Compromise
Component
Library
Class
Authentication Bypass
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Authlib's OctKey.import_key() and HMAC signing/verification paths accept zero-length key material, enabling deterministic computation of valid HS256/HS384/HS512 signatures for arbitrary JWT claims when an application secret lookup returns an empty string or bytes.

Why it matters to the business

Attackers can forge authentication tokens to impersonate any user or bypass access controls, potentially exposing sensitive data, disrupting services, or allowing unauthorized actions in applications relying on Authlib for OAuth or OpenID Connect.

How an attack unfolds

An attacker identifies an application using Authlib where secret retrieval can return empty material, computes a valid HMAC signature for a crafted token containing desired claims using the empty key, and submits the token to protected endpoints where Authlib accepts it as authentic.

How to fix it

Upgrade Authlib to version 1.9.1 or later. Audit all secret lookup functions to ensure they never return empty strings or bytes, and add explicit validation rejecting zero-length keys before use in HMAC operations.

How to confirm the fix worked

Verify Authlib version is 1.9.1 or higher via package metadata or requirements files. Test token validation behavior with deliberately empty keys in a controlled environment and confirm rejection. Review application code for secret retrieval paths.

Typical attack path

  1. Locate endpoints or flows protected by Authlib JWT validation
  2. Determine or trigger a secret lookup path that returns empty key material
  3. Craft a JWT with arbitrary claims and HS256/HS384/HS512 algorithm
  4. Compute the deterministic signature using the empty key
  5. Submit the forged token to bypass authentication

How to detect it

Inspect application logs for JWT validation events involving HS256/HS384/HS512 algorithms paired with empty key material indicators. Search for token acceptance events where secret retrieval returned zero-length values. Review any custom key import or secret provider code paths.

What your security team should do

  • Immediately upgrade all Authlib installations to 1.9.1 or newer
  • Scan codebases for secret lookup functions and enforce non-empty validation
  • Monitor for JWT tokens using HS* algorithms during validation
  • Review and test OAuth/OIDC flows for empty-key edge cases

The record

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.

Affected packages

Ecosystem Package Introduced Fixed

Related vulnerabilities