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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| doorkeeper-gem | doorkeeper-openid_connect | < 1.10.4 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | ruby-doorkeeper-openid-connect | 1.10.5-1 | — |
| Debian 13 | ruby-doorkeeper-openid-connect | No fix yet | — |
| Debian 12 | ruby-doorkeeper-openid-connect | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.04 LTS | ruby-doorkeeper-openid-connect | No fix yet | — |
| Ubuntu 24.04 LTS | ruby-doorkeeper-openid-connect | No fix yet | — |
| Ubuntu 22.04 LTS | ruby-doorkeeper-openid-connect | No fix yet | — |
| Ubuntu 20.04 LTS | ruby-doorkeeper-openid-connect | No fix yet | — |
| Ubuntu 18.04 LTS | ruby-doorkeeper-openid-connect | No fix yet | — |