CVE-2026-114619: Authlib: OpenID implicit grant checks raw scope instead of allowed scope before issuing ID tokens
Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to 1.9.0, OpenIDImplicitGrant.validateauthorizationrequest() 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.validateauthorizationrequest() checks request.payload.scope instead of the filtered request.scope. This issue is fixed in version 1.9.0.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Authlibto a version that resolves this vulnerability.Fixed in 1.9.0
Event History
Frequently Asked Questions
Which deployments are exposed to this issue?
Deployments using the OpenID implicit grant are exposed when a registered client is allowed an ID token response type but is not allowed the openid scope. The client can request openid anyway and, after user consent, receive a signed ID token.
What does an attacker need to exploit it?
The attacker needs credentials for, or control of, a registered client that is permitted an ID token response type but lacks permission for the openid scope. Exploitation also requires a user to complete the authorization consent step.
What information can be disclosed through a successful exploit?
A successful exploit can yield a signed ID token containing the user's subject and any allowed profile claims. The issue does not provide an availability impact.
Which configurations are not affected?
Authorization code flow is not affected. Deployments in which every client permitted an ID token response type is also allowed the openid scope are not affected.
What version fixes the issue?
Authlib 1.9.0 fixes the issue by checking the filtered allowed scope rather than the client-controlled raw scope during implicit-grant authorization validation.