🇰🇷 한글 설명
Doorkeeper OpenID Connect 1.10.4 미만 버전에서 동적 클라이언트 등록(DCR) 엔드포인트가 클라이언트가 요청한 범위를 서버 설정과 대조하여 검증하지 않는 취약점이 발견되었습니다. 이로 인해 자가 등록된 클라이언트가 서버가 의도한 범위를 초과하는 권한을 획득할 수 있는 권한 상승 공격이 가능합니다.
💡 쉬운 설명
사용자가 스스로 앱을 등록할 때, 허용되지 않은 높은 권한을 요청해도 시스템이 이를 확인하지 않고 그대로 승인해버리는 문제입니다. 결과적으로 공격자가 원래 가질 수 없는 권한을 마음대로 가져갈 수 있습니다.
🇺🇸 원문 (English)
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.
📍 영향받는 시스템
Doorkeeper OpenID Connect versions prior to 1.10.4
⚔️ 공격 벡터
동적 클라이언트 등록(DCR) 엔드포인트에 검증되지 않은 scope 파라미터를 전송하여 권한 상승 유도
🛡️ 대응 방법
Doorkeeper OpenID Connect를 1.10.4 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전 정보가 1.10.4 미만인지 확인하여 취약 여부를 판단합니다.
bundle info doorkeeper-openid_connect | grep -E 'Summary|Version'