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.
OpenCVE Enrichment
Github GHSA