🇰🇷 한글 설명
keycloak-services 구성 요소의 OIDC 토큰 검사(introspection) 엔드포인트에서 결함이 발견되었습니다. 특정 클라이언트가 다른 대상(audience)을 위해 발급된 토큰을 검사할 때, 토큰이 비활성 상태임에도 불구하고 서명된 JWT 필드 내에 전체 토큰 클레임 정보를 반환합니다. 이로 인해 권한이 없는 클라이언트가 대상 제한을 우회하여 토큰에 포함된 민감한 정보에 접근할 수 있습니다.
💡 쉬운 설명
로그인 정보를 확인하는 과정에서, 권한이 없는 사용자에게도 토큰에 담긴 중요한 개인 정보가 그대로 노출되는 보안 취약점입니다. 공격자는 이를 이용해 원래는 볼 수 없어야 할 민감한 데이터를 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
A flaw was found in the OIDC token introspection endpoint of the keycloak-services component. Keycloak is an open-source identity and access management solution used to secure modern applications and services. The issue occurs when a confidential client, configured to receive signed JWT introspection responses, attempts to introspect a token issued for a different audience. Although the endpoint correctly identifies the token as inactive for that client, it still returns the full set of token claims within a signed JWT field. This allows an unauthorized client to bypass audience-based restrictions and access sensitive information contained in the token.
📍 영향받는 시스템
Keycloak (keycloak-services 구성 요소 포함 버전)
⚔️ 공격 벡터
권한이 없는 클라이언트가 다른 대상용 토큰을 사용하여 OIDC introspection 엔드포인트에 요청을 보내 정보 탈취
🛡️ 대응 방법
Keycloak을 최신 보안 패치가 적용된 버전으로 업데이트하고, 엔드포인트의 클레임 반환 로직을 수정해야 함
🔧 검증 코드
응답 결과에서 active가 false임에도 불구하고 claims 필드 내에 민감한 데이터가 포함되어 있다면 취약한 상태입니다.
curl -s -X POST https://<keycloak-server>/realms/<realm>/protocol/openid-connect/token/introspect -d 'token=<invalid-token>&client_id=<client-id>&client_secret=<client-secret>' | grep -E '"claims":|"active":false'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
💻 영향받는 소프트웨어
IBM Verify Identity Access