Read the docs

Authlib default JWT bearer grant accepts assertions for the wrong audience

Priority HIGH 65CWE-1188Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
High
Impact type
Security bypass
Confidentiality · integrity · availability
High · High · None
Fix status
Partial Red Hat: 9 without a fix

Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-287.

Summary

Authlib, a Python library for building OAuth and OpenID Connect servers, returns an empty list from get_audiences() in the default RFC 7523 JWTBearerGrant before version 1.9.0. As a result, verify_claims() only checks that an aud claim exists and never compares it to the current authorization server. An attacker holding a legitimate assertion issued for another service can present it to a server that shares the signing key and uses the default grant, and receive an access token across a trust boundary. Implementations that override get_audiences() with the server's valid audience identifiers are not affected.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

Description from the CNA

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.9.0, the default RFC 7523 JWTBearerGrant.get_audiences() returns an empty list, causing JWTBearerGrant.verify_claims() to require only that an aud claim exists without matching the current authorization server. An attacker holding a legitimate assertion for another service can present it to a server that shares the signing key and uses the default grant, obtaining an access token across a trust boundary. Implementations that override get_audiences() with the server's valid audience identifiers are not affected. This issue is fixed in version 1.9.0.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00351 28th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Partial authlib (authlib): 1.9.0authlib (PyPI): 1.9.0Red Hat: 9 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
authlibauthlibbefore 1.9.01.9.0Patch availableCNA
—authlib (PyPI)before 1.9.01.9.0Patch availableGHSA-fch4-3c6x-j4gc
  • authlib Vendorauthlib Affected before 1.9.0 Fixed in 1.9.0 Patch available CNA
  • authlib (PyPI) Vendor— Affected before 1.9.0 Fixed in 1.9.0 Patch available GHSA-fch4-3c6x-j4gc

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:authlib:authlib:*:*:*:*:*:*:*:*before 1.9.0Vulnerableauthlib
  • cpe:2.3:a:authlib:authlib:*:*:*:*:*:*:*:* Versions before 1.9.0 Vulnerable ·authlib

Remediation

Upgrade Authlib to version 1.9.0 or later. If an upgrade is not possible, override get_audiences() to return the server's valid audience identifiers. Red Hat rates this Moderate. The sources list no fixed version for several Red Hat products, including Red Hat Quay 3 and Red Hat Satellite 6.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

  • Fix · CNA authlib (authlib) Fixed in 1.9.0
  • Fix · GHSA-fch4-3c6x-j4gc authlib (PyPI) Fixed in 1.9.0 Advisory →

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

ProductStatusPlan or fix
Exploit IntelligenceAffectedNo fix planned: Out of support scope
Lightspeed CoreAffectedNo fix yet: Fix deferred
Migration Toolkit for Applications 8AffectedNo fix yet: Fix deferred
OpenShift LightspeedAffectedNo fix yet: Fix deferred
Red Hat Ansible Automation Platform 2AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux command line assistantAffectedNo fix yet: Fix deferred
Red Hat OpenShift Virtualization 4AffectedNo fix yet: Fix deferred
Red Hat Quay 3AffectedNo fix planned: Out of support scope
Red Hat Satellite 6AffectedNo fix yet: Fix deferred

Timeline

  1. 2026-10-23 Threatist record created from CVE-2026-114618
  2. 2026-10-23 Affected versions changed · Red Hat
  3. 2026-10-23 CVSS score added · Red Hat
  4. 2026-10-23 Priority changed: MEDIUM → LOW
  5. 2026-10-27 Alias added: GHSA-fch4-3c6x-j4gc
  6. 2026-10-29 CISA SSVC decision points changed
  7. 2026-10-29 Priority changed: LOW → HIGH

References

  • TI-2026-22305 Authlib JWS JWK Header Injection: Signature Verification Bypass CVSS 3.1CRITICAL 9.1
  • TI-2026-79518 Authlib fix bypass lets attackers forge HS256 tokens with PEM keys CVSS 3.1CRITICAL 9.1
  • TI-2025-36973 Authlib: JWS/JWT accepts unknown crit headers (RFC violation → possible authz bypass) CVSS 3.1HIGH 7.5
  • TI-2024-25068 lepture Authlib before 1.3.1 has algorithm confusion with asymmetric public keys. CVSS 3.1HIGH 7.5
  • TI-2025-41738 Authlib: 1-click Account Takeover CVSS 3.1HIGH 8.8
  • TI-2026-22761 Authlib: Fail-Open Cryptographic Verification in OIDC Hash Binding CVSS 4.0HIGH 8.2
See all 18 →

Sources