🇰🇷 한글 설명
Keycloak의 OpenID Connect 동적 클라이언트 등록 기능에서 private_key_jwt 인증 시 발생하는 결함입니다. 공격자가 임의의 jwks_uri를 지정하면 Keycloak이 검증 없이 해당 주소로 HTTP 요청을 보내게 되어, 내부 네트워크나 클라우드 메타데이터 엔드포인트를 탐색할 수 있는 정보 노출 및 정찰 위험이 있습니다.
💡 쉬운 설명
Keycloak이 외부의 잘못된 주소로 몰래 접속을 시도하게 만들어 내부 네트워크 정보를 캐내는 공격입니다. 이를 통해 공격자는 원래 접근할 수 없는 내부 서버나 클라우드 설정 정보를 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
A flaw was identified in Keycloak’s OpenID Connect Dynamic Client Registration feature when clients authenticate using private_key_jwt. The issue allows a client to specify an arbitrary jwks_uri, which Keycloak then retrieves without validating the destination. This enables attackers to coerce the Keycloak server into making HTTP requests to internal or restricted network resources. As a result, attackers can probe internal services and cloud metadata endpoints, creating an information disclosure and reconnaissance risk.
📍 영향받는 시스템
Keycloak (OpenID Connect Dynamic Client Registration 기능 사용 시)
⚔️ 공격 벡터
동적 클라이언트 등록 과정에서 검증되지 않은 jwks_uri를 입력하여 서버 측 요청 위조(SSRF) 유도
🛡️ 대응 방법
Keycloak을 최신 보안 패치가 적용된 버전으로 업데이트하고, jwks_uri에 대한 화이트리스트 검증을 적용하십시오.
🔧 검증 코드
등록 요청 시 jwks_uri에 내부 IP를 입력했을 때 오류가 발생하지 않고 응답이 오면 취약한 상태입니다.
curl -s -X POST http://<keycloak-server>/auth/realms/<realm>/clients-registrations | grep -i 'error'