Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
keycloak-manage-users-composite — Keycloak 26.8.1 보통 6.6 원격 인증된 인증 잔여 문제. manage-users 권한을 가진 헬프데스크 관리자가 미리 만들어진 manage-realm 복합 권한을 자신에게 고정한 다음 전체 realm 문서를 읽을 수 있습니다. 해당 복합 권한이 이미 존재해야 합니다. 루프백 PoC. | Kitploit
도구/GitHubGitHub/abraxas/keycloak-manage-users-composite
Authentication & AuthorizationPrivilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationIdentity & Access Management (IAM)Labs & Practice

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
abraxas/keycloak-manage-users-composite

keycloak-manage-users-composite

Keycloak 26.8.1 보통 6.6 원격 인증된 인증 잔여 문제. manage-users 권한을 가진 헬프데스크 관리자가 미리 만들어진 manage-realm 복합 권한을 자신에게 고정한 다음 전체 realm 문서를 읽을 수 있습니다. 해당 복합 권한이 이미 존재해야 합니다. 루프백 PoC.

저장소 보기
21일 전아직 검토되지 않음

Abraxas Labs - keycloak-manage-users-composite

keycloak-manage-users-composite

비밀번호 재설정과 사용자 생성만 수행하도록 설계된 헬프데스크 계정이 스스로 권한을 승격할 수 있다. Keycloak의 manage-users 역할을 가진 사용자가 realm에 남아 있는 직함(조용히 manage-realm을 포함하는 복합 역할)을 발견하고, 자신의 계정에 그 직함을 부여한 뒤, 한 요청 전에는 숨겨져 있던 전체 realm 문서를 읽어낸다. 공격자가 그 복합 역할을 새로 만들 수는 없다. 실제 realm 관리자가 먼저 그것을 만들어 두어야 한다. 이는 그룹 가입에서 동일한 수법을 차단한 CVE-2026-94000의 역할 매핑 자매 취약점이다.

분류: 인증 잔여물 도달 범위: 원격 (인증된 manage-users)

Keycloak 26.8.1 (24ed1dad) - Red Hat

ID아직 CVE 없음
분류인증 잔여물
도달 범위원격 (인증된 Admin REST; manage-users와 미리 만들어진 복합 역할 필요)
CWECWE-269 / CWE-266
CVSS중간: 6.6 CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
제품Keycloak
영향 받는 버전26.8.1 (24ed1dadf3f246a555adb6d3d4a99e9b3003fb3b); 이미지 quay.io/keycloak/keycloak:26.8.1
인증realm-management / manage-users를 가진 위임 관리자. FGAP v2가 기본 평가기이다.
라이선스GNU Affero GPL v3.0
랩127.0.0.1:18082 전용

공격자가 할 수 있는 일

이미 manage-users를 보유한 기존 Keycloak 계정과, 이름 자체는 관리자 역할이 아니면서 복합 역할에 manage-realm 또는 realm-admin을 포함하는 realm 또는 클라이언트 역할이 필요하다. 토큰에 manage-realm이 있을 필요는 없다. 그 복합 역할을 새로 만들 수는 없다. manage-realm / realm-admin이라는 이름의 역할을 직접 할당하는 것은 여전히 거부된다.

권한메서드 / 싱크정보 수집 / 무결성 / 가용성랩 검증 또는 추론
비관리자 복합 역할을 자신에게 매핑복합 역할의 id와 이름을 사용한 POST /admin/realms/{realm}/users/{id}/role-mappings/realm무결성 (역할 부여)랩 검증. HTTP 204. 증적 kcr02m7q4
클라이언트 역할에 동일한 부여POST /admin/realms/{realm}/users/{id}/role-mappings/clients/{client}무결성소스. ClientRoleMappingsResource.java:184의 동일한 canMapRole
동일한 액세스 토큰으로 전체 realm 문서 읽기매핑 후 GET /admin/realms/{realm}정보 수집랩 검증. 이전: HTTP 200 부분 응답 (속성 없음, accessTokenLifespan 없음). 이후: HTTP 200 전체 응답, 심어둔 속성 존재
이후 관리자 호출에서 중첩된 manage-realm 사용UserAdapter.hasRole이 복합 역할을 순회; KeycloakIdentity.hasClientRole이 사용자 모델을 신뢰무결성소스에서 추론. 랩 오라클은 전체 realm GET
복합 역할이 realm-admin인 경우 중첩된 realm-admin동일한 순회무결성추론. 랩에서는 manage-realm 사용
음성 대조복합 역할을 매핑하지 않은 두 번째 manage-users 사용자해당 없음랩 검증. 대조군 GET은 부분 응답 유지

이 잔여물에서도 여전히 차단되는 항목

축메서드 / 싱크차단되는 이유
무결성manage-realm / realm-admin / 기타 AdminRoles.ALL_ROLES의 직접 매핑RolePermissionsV2.isRealmAdminRole이 여전히 거부
무결성관리자 역할을 포함하는 복합 역할 생성canMapComposite이 여전히 checkAdminRoles를 호출
무결성관리자 역할을 포함하는 복합 역할이 있는 그룹 가입CVE-2026-94000이 GroupUtils.checkAdminGroupRoles에서 복합 역할을 순회
무결성해당 그룹에 이미 속한 사용자 생성UsersResource.createUser에서 동일한 순회
정보 수집익명 Admin RESTmanage-users 토큰 필요
무결성호스트 RCE, realm-admin이 realm-admin을 발급분류 범위 밖

GET /admin/realms/{realm}는 manage-users에 대해 HTTP 403이 아닙니다. 해당 역할 자체가 관리자 역할이므로 서버는 부분 문서와 함께 200을 반환합니다. 남는 것은 컴포지트가 매핑된 후에만 나타나는 필드들입니다.

발견 경위

Keycloak 26.8.1을 고정했습니다. 세분화된 관리자 권한 v2는 기본적으로 활성화되어 있습니다. RolePermissionsV2.canMapRole은 isRealmAdminRole에 실패하는 모든 역할에 대해 true를 반환하며 컴포지트를 순회하지 않습니다. CVE-2026-94000 수정은 그룹 경로에서만 컴포지트를 순회합니다.

이미 기록된 잘못된 방향들: v1 isRealmAdminRole을 실제 검사로 간주한 것(v2가 이를 재정의함), 권한 부여 전 realm GET에서 HTTP 403을 기대한 것(실제 결과는 부분적인 200), CVE-2026-94000 재신고(그룹 조인, 이미 종료됨), 리버스 셸. 쇼에 불과합니다.

랩

python3 keycloak-manage-users-composite-Abraxas-Labs.py

또는:

cd lab
./run.sh

오직 http://127.0.0.1:18082만 대상으로 합니다. 이미지 quay.io/keycloak/keycloak:26.8.1. Docker가 필요합니다. 런처는 lab/로 chdir한 후 run.sh를 exec합니다.

IOC image=quay.io/keycloak/keycloak:26.8.1 label-version=26.8.1
IOC serverinfo-version=26.8.1
IOC admin-composite=manage-realm
IOC limited-direct=manage-users
IOC control-direct=manage-users
IOC before-status=200 witness=0 full=0
IOC available=sneaky-composite
IOC post-status=204
IOC after-get attempt=1 status=200 witness=1 full=1
IOC control-status=200 witness=0 full=0 same-token=1
SUCCESS KC-H02-ROLEMAP kcr02m7q4

수정 사항

GroupUtils.checkAdminGroupRoles가 그룹 가입 시 이미 수행하는 방식대로, RolePermissionsV2.canMapRole에서도 컴포지트를 순회하도록 합니다. manage-realm 또는 realm-admin을 포함하는 역할은 그 자체의 이름이 관리자 역할이 아니더라도 관리자 역할입니다.

참고 자료

  • github.com/keycloak/keycloak 태그 26.8.1 (24ed1dadf3f246a555adb6d3d4a99e9b3003fb3b)
  • RolePermissionsV2.canMapRole (RolePermissionsV2.java:59-61)
  • RoleMapperResource.addRealmRoleMappings (RoleMapperResource.java:289-290)
  • 인접 항목(이 경로는 아님): CVE-2026-94000 그룹 가입 컴포지트 순회
  • CWE-269 · CWE-266

라이선스

GNU Affero GPL v3.0. LICENSE를 참조하세요. 루프백 실험 환경 전용입니다. 보증은 제공되지 않습니다.

Abraxas Labs [email protected]

CVE 공로는 Abraxas Labs에 돌려주세요.

도구 다운로드