
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-116672 is an authorization bypass vulnerability in Authlib, a Python library for building OAuth and OpenID Connect servers. The flaw exists in the documented reference implementations of ClientConfigurationEndpoint.authenticate_client and ClientConfigurationEndpoint.check_permission for RFC 7592 (OAuth 2.0 Dynamic Client Registration Management Protocol), which fail to verify that a presented registration access token belongs to the target client. All versions from 0.15 through 1.9.0 are affected; the issue is fixed in version 1.9.1. It carries a CVSS v3.1 base score of 8.8 (High) (GitHub Advisory, Feedly).
The root cause is classified as CWE-639 (Authorization Bypass Through User-Controlled Key) and CWE-1188 (Insecure Default Initialization of Resource). The authenticate_client example in authlib/oauth2/rfc7592/endpoint.py looks up the target client solely from the attacker-controlled client_id in the request payload, while check_permission only verifies whether the target client is generally "editable" — neither method checks that request.credential (the authenticated token) actually belongs to the target client. An attacker with any valid registration_access_token for any client can supply an arbitrary client_id in the request to read, modify, or delete a completely different client's registration. The fix (commit 1bd2a31) adds an explicit token.check_client(client) call in create_configuration_response and updates the documented examples to extract client_id from the URL path rather than the request body (GitHub Advisory, Fix Commit).
Any authenticated client holding a valid registration access token can read, modify, or delete any other client's registration record over the network. Modifying redirect_uris to an attacker-controlled endpoint enables interception of authorization codes or OAuth tokens for victim clients' users, constituting a high confidentiality and integrity impact. Deleting client registrations causes denial of service for affected clients. In open dynamic registration deployments — where self-registration requires no initial access token — this effectively reduces to an unauthenticated attack, since an attacker can freely self-register to obtain a qualifying token (GitHub Advisory).
No public proof-of-concept exploit or evidence of in-the-wild exploitation has been observed as of the disclosure date (Feedly). The EPSS score is 0.0, indicating low current exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. However, exploitability is practically low-barrier in open dynamic registration deployments, as an attacker only needs to self-register a throwaway client to obtain a valid token, then target any other client by guessing or enumerating its client_id (GitHub Advisory).
ClientConfigurationEndpoint using versions 0.15–1.9.0, and locate the RFC 7591 dynamic client registration endpoint (commonly /oauth/register or similar).client_id_A and registration_access_token_A.client_id_B belonging to a different, legitimate client on the same server (client IDs may be predictable or discoverable via error messages).GET /oauth/register/client_id_B) with the header Authorization: Bearer registration_access_token_A.authenticate_client looks up client_id_B from the request without checking token binding, and check_permission only verifies client_B.editable, the server processes the request as if authorized.redirect_uris to an attacker-controlled URL to intercept future authorization codes/tokens, or delete the client registration to deny service (GitHub Advisory)./oauth/register/<client_id>) where the client_id in the URL does not match the client associated with the Authorization: Bearer token in server logs.registration_access_token used to access multiple distinct client_id paths; HTTP 200 responses to configuration endpoint requests from clients that do not own the targeted registration.redirect_uris for registered clients, particularly to external or unknown domains; sudden deletion of client registrations with no corresponding administrative action recorded.Upgrade Authlib to version 1.9.1, which adds an explicit token.check_client(client) binding check in create_configuration_response and corrects the documented examples (Release v1.9.1, Fix Commit). If immediate upgrading is not possible, review custom implementations of authenticate_client and check_permission and add an explicit check such as request.credential.client_id == client.get_client_id() in check_permission. Additionally, ensure authenticate_client reads client_id from the URL path rather than the request body, as GET and DELETE requests have no body (GitHub Advisory).
The vulnerability was reported by researcher alham-rizvi and the advisory was published by Authlib maintainer azmeuk (Éloi Rivard) on October 14, 2026. The advisory notes that this is a documentation and reference-implementation issue rather than a flaw enforced unconditionally by the library, since the affected methods are abstract and must be implemented by developers — making it particularly insidious for those who followed the official documentation exactly as written (GitHub Advisory).
Fix availability across major Linux distributions and their releases.
bookworm
python-authlib
sid
python-authlib: 1.9.1-1
trixie
python-authlib
devel
python-authlib
jammy
python-authlib
jammy (esm-apps)
python-authlib
noble
python-authlib
noble (esm-apps)
python-authlib
resolute
python-authlib
resolute (esm-apps)
python-authlib
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."