Description
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.
Published: 2026-10-22
Score: 4.6 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized issuance of ID tokens with openid scope, exposing user identity and profile claims
Action: Patch immediately
AI Analysis

Impact

Authlib's OpenIDImplicitGrant checks the client‑controlled raw scope before validating the allowed scope, allowing a malicious client to append the openid scope to the request. The server then issues an ID token containing the user’s subject and any profile claims the client is permitted to see. This flaw effectively grants the client access to user identity information it is not authorized to obtain.

Affected Systems

Authlib library, any deployment using Authlib version prior to 1.9.0, specifically the OpenID implicit grant implementation.

Risk and Exploitability

The CVSS base score is 4.6, indicating moderate impact. EPSS is not available, so the likelihood of exploitation is uncertain but the vulnerability is not listed in CISA KEV. The attack requires control over a client application that uses the implicit grant flow to add the openid scope; no privileged access or additional conditions are needed. Once exploited, the attacker can acquire an ID token that includes user identity and profile data beyond what the client should be able to access.

Generated by OpenCVE AI on October 23, 2026 at 13:25 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Authlib to version 1.9.0 or later where the issue is fixed.
  • Restrict the implicit grant flow to trusted clients, or disable it entirely if not needed.
  • Ensure that server configuration enforces the relationship between response type and scope, so that an ID token response includes the openid scope only when explicitly allowed.

Generated by OpenCVE AI on October 23, 2026 at 13:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-q686-2qmg-hqc7 Authlib: OpenID implicit grant checks raw scope instead of allowed scope before issuing ID tokens
History

Thu, 29 Oct 2026 15:00:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:authlib:authlib:*:*:*:*:*:*:*:*

Thu, 29 Oct 2026 03:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 23 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-807
References
Metrics threat_severity

None

threat_severity

Moderate


Fri, 23 Oct 2026 03:45:00 +0000

Type Values Removed Values Added
First Time appeared Authlib
Authlib authlib
Vendors & Products Authlib
Authlib authlib

Fri, 23 Oct 2026 00:45:00 +0000

Type Values Removed Values Added
Description 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.
Title Authlib: OpenID implicit grant checks raw scope instead of allowed scope before issuing ID tokens
Weaknesses CWE-863
References
Metrics cvssV3_1

{'score': 4.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-29T02:40:27.668Z

Reserved: 2026-10-21T20:34:25.600Z

Link: CVE-2026-114619

cve-icon Vulnrichment

Updated: 2026-10-29T02:40:21.696Z

cve-icon NVD

Status : Analyzed

Published: 2026-10-22T22:18:04.930

Modified: 2026-10-29T14:53:29.643

Link: CVE-2026-114619

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-22T21:31:02Z

Links: CVE-2026-114619 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T13:30:07Z

Weaknesses
  • CWE-807

    Reliance on Untrusted Inputs in a Security Decision

  • CWE-863

    Incorrect Authorization