Description
Doorkeeper OpenID Connect implements an OpenID Connect authentication provider for Rails applications on top of Doorkeeper. Prior to 1.10.4, the Dynamic Client Registration (DCR) endpoint persists client-supplied scopes without validating them against the server's configured scope set. Under certain conditions, this allows a self-registered client to obtain scopes beyond what the server intended to grant. In DynamicClientRegistrationController#application_params, the scopes attribute is assigned directly from params[:scope] with no validation against Doorkeeper.configuration.scopes or optional_scopes. Combined with enforce_configured_scopes being off by default and Doorkeeper's ScopeChecker prioritizing application-level scopes over server-level scopes, this creates a privilege escalation path. This issue is fixed in version 1.10.4.
Published: 2026-08-25
Score: 4.2 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized privilege escalation via unvalidated scopes during dynamic client registration
Action: Apply Patch
AI Analysis

Impact

The vulnerability lies in the OpenID Connect extension where the Dynamic Client Registration endpoint stores any scopes submitted by a client without checking them against the server’s allowed scopes. This allows a client to claim abilities it should not have, effectively granting it higher privileges than intended. The flaw originates from the code path that assigns the scopes directly from the request parameters without validation, combined with default configuration values that enable application‑level scopes to override server‑level restrictions.

Affected Systems

Environments running Doorkeeper OpenID Connect for Ruby on Rails prior to version 1.10.4 are affected. The specific product is the doorkeeper‑gem’s doorkeeper‑openid_connect library. Users should verify their installed version and update when possible to 1.10.4 or later to eliminate the flaw.

Risk and Exploitability

The CVSS score of 4.2 indicates moderate risk, and no EPSS score is available, implying limited public exploitation data at this time. The vulnerability is not listed in CISA’s KEV catalog. The likely attack vector requires an attacker to first register a client with the server’s DCR endpoint, which is typically open to unauthenticated clients. If the attacker can submit arbitrary scopes, they can create or modify a client registration to obtain scopes beyond the admin’s intended scope set, leading to unauthorized data access or actions. Consequently, while the exploit is not trivial, it requires only the ability to use the registration endpoint.

Generated by OpenCVE AI on August 26, 2026 at 01:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update to Doorkeeper OpenID Connect version 1.10.4 or newer to apply the official fix
  • Enable enforce_configured_scopes in Doorkeeper configuration to enforce scope validation
  • Limit allowed scopes in Doorkeeper.configuration.scopes and optional_scopes to restrict client capabilities

Generated by OpenCVE AI on August 26, 2026 at 01:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 28 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Doorkeeper-gem
Doorkeeper-gem doorkeeper-openid Connect
Vendors & Products Doorkeeper-gem
Doorkeeper-gem doorkeeper-openid Connect

Thu, 27 Aug 2026 18:00:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Tue, 25 Aug 2026 22:30:00 +0000

Type Values Removed Values Added
Description Doorkeeper OpenID Connect implements an OpenID Connect authentication provider for Rails applications on top of Doorkeeper. Prior to 1.10.4, the Dynamic Client Registration (DCR) endpoint persists client-supplied scopes without validating them against the server's configured scope set. Under certain conditions, this allows a self-registered client to obtain scopes beyond what the server intended to grant. In DynamicClientRegistrationController#application_params, the scopes attribute is assigned directly from params[:scope] with no validation against Doorkeeper.configuration.scopes or optional_scopes. Combined with enforce_configured_scopes being off by default and Doorkeeper's ScopeChecker prioritizing application-level scopes over server-level scopes, this creates a privilege escalation path. This issue is fixed in version 1.10.4.
Title Doorkeeper OpenID Connect: DCR endpoint persists unvalidated client-supplied scopes
Weaknesses CWE-285
References
Metrics cvssV3_1

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


Subscriptions

Doorkeeper-gem Doorkeeper-openid Connect
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-27T14:34:50.455Z

Reserved: 2026-08-04T21:48:08.613Z

Link: CVE-2026-70665

cve-icon Vulnrichment

Updated: 2026-08-27T13:52:59.700Z

cve-icon NVD

Status : Deferred

Published: 2026-08-25T23:17:58.933

Modified: 2026-09-09T21:09:13.080

Link: CVE-2026-70665

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-28T20:34:21Z

Weaknesses