CVE-2026-114619 in Authlibinfo

Summary

by MITRE • 10/22/2026

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.9.0, OpenIDImplicitGrant.validate_authorization_request() checks the client-controlled raw request.payload.scope for openid after the parent grant has filtered allowed scopes into request.scope. A registered client permitted an ID token response type but not the openid scope can add openid to the request, obtain user consent, and receive a signed ID token containing the user's subject and allowed profile claims. Authorization code flow and deployments that allow openid for every client permitted an ID token response are not affected. In authlib/oidc/core/grants/implicit.py, OpenIDImplicitGrant.validate_authorization_request() checks request.payload.scope instead of the filtered request.scope. This issue is fixed in version 1.9.0.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 10/22/2026

The vulnerability identified within Authlib versions prior to 1.9.0 represents a critical authorization bypass flaw rooted in improper validation of scope parameters during the OpenID Connect Implicit Grant flow. Authlib serves as a foundational Python library for implementing OAuth and OpenID Connect servers, handling complex authentication protocols that rely on strict adherence to security standards to ensure identity integrity. The specific defect resides in the implementation of the implicit grant mechanism, where the system fails to enforce consistency between declared scopes and permitted capabilities during the authorization request validation phase. This discrepancy allows an attacker or a malicious client application to manipulate the scope parameter sent by the user agent, thereby gaining access to claims that were not originally authorized for that specific client identity.

The technical root cause of this vulnerability is located in the OpenIDImplicitGrant.validate_authorization_request method within the authlib/oidc/core/grants/implicit.py module. In a secure implementation, the server should validate scopes against a pre-filtered list of allowed permissions associated with the registered client application to prevent scope inflation attacks. However, in vulnerable versions, the validation logic inspects request.payload.scope, which contains the raw input provided by the client or user agent, rather than request.scope, which represents the sanitized and filtered set of scopes permitted for that specific client. This architectural oversight means that even if a registered client is explicitly configured to receive an ID token but lacks permission to access the openid scope, it can still inject openid into the authorization request payload.

The operational impact of this flaw is significant as it enables unauthorized data exposure through identity tokens. When a user initiates authentication with such a maliciously crafted request and provides consent, the server processes the inflated scope list instead of the restricted one. Consequently, the resulting signed ID token contains sensitive profile claims associated with the openid scope that the client was not authorized to receive. This includes critical identifiers such as the user's subject identifier (sub) and other protected attributes. Since these tokens are cryptographically signed by the authorization server, relying parties may trust their contents without realizing they were obtained through a protocol violation, leading to potential privacy breaches and unauthorized access to user data in downstream applications that consume these tokens.

This vulnerability aligns with CWE-284 Improper Access Control, specifically reflecting failures in enforcing scope restrictions during authentication flows. It also maps to MITRE ATT&CK techniques related to privilege escalation or account manipulation within identity systems, as it allows a lower-privileged entity to acquire higher-level credentials than intended by the administrator's configuration. The flaw is particularly dangerous because it exploits the trust model of OpenID Connect where clients are expected to only request and receive scopes they have been explicitly granted during client registration. By bypassing this check, an attacker can effectively elevate their privileges within the identity ecosystem without needing valid administrative access or exploiting a separate software bug in the target application logic.

It is important to note that not all deployments of Authlib are susceptible to this issue. The vulnerability specifically affects configurations using the Implicit Grant flow where clients have ID token response types enabled but do not universally possess openid scope permissions. Deployments utilizing the Authorization Code Flow or those configured to allow the openid scope for every client permitted an ID token response type remain unaffected because they either follow a different validation path that correctly filters scopes or operate under a permissive policy that negates the impact of the bypass. This distinction highlights how security configurations can mitigate certain classes of vulnerabilities even when underlying library code contains defects, although relying on configuration rather than robust default coding practices is generally discouraged in high-security environments.

To remediate this vulnerability and restore secure authentication operations, organizations must upgrade Authlib to version 1.9.0 or later immediately upon availability. This update corrects the validation logic by ensuring that scope checks are performed against the filtered request.scope object rather than the raw payload input. In addition to upgrading the library, security teams should review their OpenID Connect client configurations to ensure strict adherence to the principle of least privilege. It is recommended to explicitly define allowed scopes for each registered client and avoid overly permissive policies such as granting openid scope universally unless absolutely necessary for all applications. Regular audits of authentication flows and integration testing with tools that simulate scope inflation attacks can further help identify any residual misconfigurations or custom implementations that might bypass standard library protections.

Responsible

GitHub M

Reservation

10/21/2026

Disclosure

10/22/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!