Description
Doorkeeper is an OAuth 2 provider for Ruby on Rails. In version 1.9.0, an attacker who knows only a dynamically registered client's client_id, which is public information, can authenticate as that client at the token endpoint and obtain an access token without providing its client_secret. This occurs because the Dynamic Client Registration feature creates applications with confidential: false hard-coded, even though the registration response returns a client_secret and advertises support for the client_secret_basic and client_secret_post authentication methods; since Doorkeeper treats a blank or missing secret as valid for non-confidential (public) clients, the secret is never verified. Only projects that have explicitly enabled Dynamic Client Registration, which is disabled by default, are affected. This issue is fixed in version 1.10.0.
Published: 2026-08-25
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Client credential exposure and unauthorized token issuance
Action: Apply patch
AI Analysis

Impact

A flaw in the Dynamic Client Registration routine of Doorkeeper OpenID Connect creates applications marked as public while still returning a client_secret. Because the system treats a missing or empty secret as valid for non‑confidential clients, an attacker who knows the public client_id can authenticate at the token endpoint without providing the secret, obtaining an access token. This bypasses the intended client authentication mechanism and can expose downstream resources. The weakness is captured by CWE‑1390 (Improper Privilege Management) and CWE‑287 (Improper Authentication).

Affected Systems

Doorkeeper‑gem’s doorkeeper‑openid_connect product versions before 1.10.0 are affected, but only if the Dynamic Client Registration feature is enabled, which is disabled by default. Version 1.10.0 and later contain the fix.

Risk and Exploitability

The CVSS score of 6.3 indicates moderate severity. EPSS data is unavailable, and the vulnerability is not listed in CISA’s KEV catalog. Attackers can exploit the flaw by sending a client_id to the public token endpoint; no special privileges or additional access are required. The likelihood of exploitation is moderate, contingent on DCR being enabled and the attacker having the client_id.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to Doorkeeper OpenID Connect 1.10.0 or later to apply the vendor supplied fix
  • If Dynamic Client Registration is not needed, disable the feature to prevent the creation of vulnerable clients
  • Re‑register any existing clients with the updated implementation so that client credentials are properly enforced

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

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-m6vc-f87m-cc2h Doorkeeper Openid Connect: Dynamic Client Registration feature creates public clients with client_secret
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

Wed, 26 Aug 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Tue, 25 Aug 2026 23:00:00 +0000

Type Values Removed Values Added
Description Doorkeeper is an OAuth 2 provider for Ruby on Rails. In version 1.9.0, an attacker who knows only a dynamically registered client's client_id, which is public information, can authenticate as that client at the token endpoint and obtain an access token without providing its client_secret. This occurs because the Dynamic Client Registration feature creates applications with confidential: false hard-coded, even though the registration response returns a client_secret and advertises support for the client_secret_basic and client_secret_post authentication methods; since Doorkeeper treats a blank or missing secret as valid for non-confidential (public) clients, the secret is never verified. Only projects that have explicitly enabled Dynamic Client Registration, which is disabled by default, are affected. This issue is fixed in version 1.10.0.
Title Doorkeeper OpenID Connect: Dynamic Client Registration feature creates public clients with client_secret
Weaknesses CWE-1390
CWE-287
References
Metrics cvssV4_0

{'score': 6.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Doorkeeper-gem Doorkeeper-openid Connect
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-26T15:38:48.102Z

Reserved: 2026-05-06T17:18:51.782Z

Link: CVE-2026-44476

cve-icon Vulnrichment

Updated: 2026-08-26T15:38:22.633Z

cve-icon NVD

Status : Deferred

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

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

Link: CVE-2026-44476

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

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

Weaknesses