Description
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.
Published: 2026-10-22
Score: 5.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Server-Side Request Forgery (SSRF) via unvalidated request_uri
Action: Apply Patch
AI Analysis

Impact

Authlib's RFC 9101 JWTAuthenticationRequest forwards an unauthenticated, client-controlled request_uri to the get_request_object() hook before applying any destination or registration policy. If the hook performs an unrestricted outbound fetch, a remote attacker who knows a valid public client identifier can instruct the authorization server to retrieve internal, link-local, or otherwise unintended URLs. The attacker can infer fetch outcomes through differing error responses and timing, enabling discovery of internal resources or services. Only deployments whose custom hook already implements a secure allowlist, destination controls, and retrieval limits are not affected.

Affected Systems

The affected product is the Authlib Python library (authlib:authlib). Versions prior to 1.9.0 are vulnerable. Integrations that implement the get_request_object() hook as an unrestricted fetch are at risk, regardless of whether the hook itself attempts a network request - the library documentation demonstrates an unrestricted HTTP fetch. Version 1.9.0 and later contain the fix.

Risk and Exploitability

The CVSS score of 5.4 indicates moderate severity. The EPSS score is not available, and the vulnerability is not listed in CISA's KEV catalog. The likely attack vector is Remote Server-Side Request Forgery: a remote actor, possessing a valid public client ID, can trigger the authorization server to perform arbitrary outbound HTTP(S) requests. If an application's custom hook does not enforce an allowlist or destination restrictions, the attacker can probe internal endpoints or otherwise expose sensitive internal resources.

Generated by OpenCVE AI on October 23, 2026 at 03:06 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Authlib library to version 1.9.0 or newer, where the risk is mitigated.
  • If an upgrade cannot be performed immediately, modify any custom get_request_object() hook to enforce a strict URL allowlist, destination constraints, and fetch size limits before performing an outbound request.
  • Disable or restrict the use of request_uri in public client flows until the library is updated or the hook is secured.

Generated by OpenCVE AI on October 23, 2026 at 03:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-x4rv-c3wx-4cr8 Authlib: Unvalidated request_uri fetch in JWT-secured authorization request (JAR) leading to SSRF
History

Tue, 10 Nov 2026 21:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 29 Oct 2026 15:00:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:authlib:authlib:*:*:*:*:*:*:*:*

Fri, 23 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Moderate


Fri, 23 Oct 2026 03:45:00 +0000

Type Values Removed Values Added
First Time appeared Authlib
Authlib authlib
Vendors & Products Authlib
Authlib authlib

Fri, 23 Oct 2026 00:45:00 +0000

Type Values Removed Values Added
Description 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.
Title Authlib: Unvalidated request_uri fetch in JWT-secured authorization request (JAR) leading to SSRF
Weaknesses CWE-918
References
Metrics cvssV3_1

{'score': 5.4, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-30T20:14:29.752Z

Reserved: 2026-10-21T20:34:25.600Z

Link: CVE-2026-114620

cve-icon Vulnrichment

Updated: 2026-10-30T20:14:07.790Z

cve-icon NVD

Status : Modified

Published: 2026-10-22T22:18:05.090

Modified: 2026-10-30T21:16:50.870

Link: CVE-2026-114620

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-22T21:34:11Z

Links: CVE-2026-114620 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T03:30:15Z

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)