CVE-2026-44476

Doorkeeper OpenID Connect: Dynamic Client Registration feature creates public clients with client_secret

Published Aug 25, 2026 CVSS 4.0 · 6.3 Medium EPSS < 1% KEV · Not listed
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.

Remediation

No solution or workaround provided in the CVE record

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
Type Values Removed Values Added
First Time appeared Doorkeeper-gem
Doorkeeper-gem doorkeeper-openid Connect
Vendors & Products Doorkeeper-gem
Doorkeeper-gem doorkeeper-openid Connect
Type Values Removed Values Added
Metrics ssvc

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

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'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Aug 26, 2026, 3:38 PM
Reserved
May 6, 2026, 5:18 PM
Status
Deferred
Published
Aug 25, 2026, 11:17 PM
Modified
Sep 9, 2026, 9:09 PM