Read the docs

Server-side request forgery in Authlib JWT authorization requests

Priority MEDIUM 58CWE-918Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
High
Impact type
—
Confidentiality · integrity · availability
Low · Low · 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.

Summary

Authlib before 1.9.0 passes the client-controlled request_uri parameter to a hook before applying a destination policy, causing server-side request forgery (CWE-918). An unauthenticated remote attacker who knows a valid public client identifier can make the server request internal URLs when the integrator's hook performs an unrestricted fetch. A public exploit is linked in the references.

Written with Claude Haiku 5.5 from the sources below · 2026-11-05

Description from the CNA

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.9.0, Authlib's RFC 9101 JWTAuthenticationRequest passes the unauthenticated, client-controlled request_uri parameter to the abstract get_request_object() hook before applying a destination or registration policy; the hook itself performs no network request, while the documentation demonstrates an unrestricted HTTP fetch. In deployments whose integrator implements that hook as an unrestricted outbound fetch, a remote attacker who knows a valid public client identifier can make the authorization server request internal, link-local, or otherwise unintended URLs and can distinguish fetch outcomes through different error responses and timing. Deployments whose custom hook already applies a secure allowlist, destination controls, and retrieval limits are not affected. The JWTAuthenticationRequest implementation in authlib/oauth2/rfc9101/authorization_server.py forwards request_uri to get_request_object() before an application-approved retrieval policy accepts the destination. 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.00385 32nd 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
Partial

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)1.6.0 to before 1.9.01.9.0Patch availableGHSA-x4rv-c3wx-4cr8
  • authlib Vendorauthlib Affected before 1.9.0 Fixed in 1.9.0 Patch available CNA
  • authlib (PyPI) Vendor— Affected 1.6.0 to before 1.9.0 Fixed in 1.9.0 Patch available GHSA-x4rv-c3wx-4cr8

CPE configurations NVD · 1

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

Remediation

Upgrade Authlib to version 1.9.0 or later. The sources list no fixed version for Exploit Intelligence, Quay 3, Lightspeed Core, Migration Toolkit for Applications 8, OpenShift Lightspeed, Ansible Automation Platform 2, Red Hat Enterprise Linux command line assistant, OpenShift Virtualization 4 and Satellite 6.

Written with Claude Haiku 5.5 from the sources below · 2026-11-05

  • Fix · CNA authlib (authlib) Fixed in 1.9.0
  • Fix · GHSA-x4rv-c3wx-4cr8 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-114620
  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-x4rv-c3wx-4cr8
  6. 2026-10-30 CISA SSVC decision points changed
  7. 2026-10-30 Priority changed: LOW → MEDIUM

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