Server-side request forgery in Authlib JWT authorization requests
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
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
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| authlib | authlib | before 1.9.0 | 1.9.0 | Patch available | CNA |
| — | authlib (PyPI) | 1.6.0 to before 1.9.0 | 1.9.0 | Patch available | GHSA-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
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 →
| Product | Status | Plan or fix |
|---|---|---|
| Exploit Intelligence | Affected | No fix planned: Out of support scope |
| Lightspeed Core | Affected | No fix yet: Fix deferred |
| Migration Toolkit for Applications 8 | Affected | No fix yet: Fix deferred |
| OpenShift Lightspeed | Affected | No fix yet: Fix deferred |
| Red Hat Ansible Automation Platform 2 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux command line assistant | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Virtualization 4 | Affected | No fix yet: Fix deferred |
| Red Hat Quay 3 | Affected | No fix planned: Out of support scope |
| Red Hat Satellite 6 | Affected | No fix yet: Fix deferred |
Timeline
- 2026-10-23 Threatist record created from CVE-2026-114620
- 2026-10-23 Affected versions changed · Red Hat
- 2026-10-23 CVSS score added · Red Hat
- 2026-10-23 Priority changed: MEDIUM → LOW
- 2026-10-27 Alias added: GHSA-x4rv-c3wx-4cr8
- 2026-10-30 CISA SSVC decision points changed
- 2026-10-30 Priority changed: LOW → MEDIUM
References
Patch 3
More Authlib vulnerabilities
- 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
Sources
- CVE-2026-114620 · CVE Program
- CVE-2026-114620 · NVD
- FIRST EPSS
- GHSA-x4rv-c3wx-4cr8 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-114620 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences