PYSEC-2026-4360

    Dashboard / Vulnerabilities / PYSEC-2026-4360

    PYSEC-2026-4360

    Published: 22 Oct 2026Last Modified: 30 Oct 2026

    Summary:

    Details: 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.

    Affected packages

    Package

    Name: authlib

    Purl: pkg:pypi/authlib

    Affected ranges

    Type: ECOSYSTEM

    Events:

    Introduced- 1.6.0
    Fixed -1.9.0

    Affected versions

    1.6.0
    1.6.1
    1.6.10
    1.6.11
    1.6.12
    1.6.2
    1.6.3
    1.6.4
    1.6.5
    1.6.6
    1.6.7
    1.6.8
    1.6.9

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High