CVE-2026-114616
High · 7.4CVSS
7.4
EPSS
0.3%
Published
Oct 22, 2026
CISA due date
—
Cloudanix analysis
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
- Locate endpoints or flows protected by Authlib JWT validation
- Determine or trigger a secret lookup path that returns empty key material
- Craft a JWT with arbitrary claims and HS256/HS384/HS512 algorithm
- Compute the deterministic signature using the empty key
- 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
- CVE-2026-63398 Coop is an open source review and moderation tool from ROOST. CWE-287
- CVE-2026-116239 In server mode pgAdmin 4 keeps an account per authentication source, so the same username… CWE-287
- CVE-2026-62264 PDF Reader MCP is a Model Context Protocol server for reading PDF documents. CWE-287
- CVE-2026-61739 SOCFortress CoPilot focuses on providing a single pane of glass for all your security… CWE-287
- CVE-2026-110799 Vvveb is a powerful and easy to use CMS with page builder to build websites, blogs or… CWE-287
- CVE-2026-119572 Traefik from 3.7.0-ea.1 before 3.7.15 contains an authentication bypass vulnerability in… CWE-287
- CVE-2026-118194 The Page and Post Restriction plugin for WordPress is vulnerable to Authentication Bypass… CWE-287
- CVE-2026-114443 The Security Plugin, Firewall & Malware Scanner with Auto Removal WordPress plugin before… CWE-287