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
प्रमाणीकरण और प्राधिकरणविशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपहचान और एक्सेस प्रबंधन (IAM)लैब और अभ्यास
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 में एक बची हुई जॉब-टाइटल (एक composite भूमिका जो चुपचाप manage-realm को शामिल करती है) पाता है, उस टाइटल को अपने स्वयं के खाते पर लगाता है, और फिर वह पूरा realm दस्तावेज़ पढ़ता है जो एक अनुरोध पहले उससे छिपाया गया था। वे उस composite को नहीं बना सकते। एक वास्तविक realm व्यवस्थापक को पहले इसे बनाना होगा। यह CVE-2026-94000 का role-mapping सहोदर है, जिसने group join पर वही तरकीब बंद कर दी थी।

Class: Auth leftover Reach: Remote (authenticated manage-users)

Keycloak 26.8.1 (24ed1dad) - Red Hat

IDअभी तक कोई CVE नहीं
ClassAuth leftover
ReachRemote (authenticated Admin REST; manage-users के साथ-साथ एक पूर्व-निर्मित composite की आवश्यकता है)
CWECWE-269 / CWE-266
CVSSMedium: 6.6 CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
ProductKeycloak
Affected26.8.1 (24ed1dadf3f246a555adb6d3d4a99e9b3003fb3b); image quay.io/keycloak/keycloak:26.8.1
Authrealm-management / manage-users वाला delegated admin। FGAP v2 डिफ़ॉल्ट evaluator है।
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1:18082

एक हमलावर क्या कर सकता है

इसके लिए एक मौजूदा Keycloak खाता आवश्यक है जिसके पास पहले से manage-users हो, और एक realm या client भूमिका जिसका अपना नाम कोई admin भूमिका न हो और जिसके composites में manage-realm या realm-admin शामिल हो। टोकन पर manage-realm की आवश्यकता नहीं है। वह उस composite को नहीं बना सकता। manage-realm / realm-admin नामक भूमिका का सीधा असाइनमेंट अभी भी अस्वीकार किया जाता है।

PrivilegeMethod / sinkRecon / integrity / availabilityLab-proven या inferred
स्वयं पर एक non-admin composite मैप करनाcomposite id और name के साथ POST /admin/realms/{realm}/users/{id}/role-mappings/realmIntegrity (role grant)Lab-proven। HTTP 204। Witness kcr02m7q4
client भूमिका पर वही grantPOST /admin/realms/{realm}/users/{id}/role-mappings/clients/{client}IntegritySource। ClientRoleMappingsResource.java:184 पर वही canMapRole
उसी access token पर पूरा realm दस्तावेज़ पढ़नाmapping के बाद GET /admin/realms/{realm}ReconLab-proven। पहले: HTTP 200 आंशिक (कोई attributes नहीं, कोई accessTokenLifespan नहीं)। बाद में: HTTP 200 पूर्ण, planted attribute मौजूद
बाद के admin कॉल पर nested manage-realm का उपयोगUserAdapter.hasRole composites को walk करता है; KeycloakIdentity.hasClientRole user model पर भरोसा करता हैIntegritySource से inferred। Lab oracle पूरा realm GET है
nested realm-admin जब वही composite होवही walkIntegrityInferred। Lab ने manage-realm का उपयोग किया
Negative controlएक दूसरा manage-users उपयोगकर्ता जो composite को मैप नहीं करताn/aLab-proven। Control GET आंशिक ही रहता है

इस leftover पर बंद रहता है

AxisMethod / sinkयह क्यों बंद है
Integritymanage-realm / realm-admin / अन्य AdminRoles.ALL_ROLES का सीधा mapRolePermissionsV2.isRealmAdminRole अभी भी अस्वीकार करता है
Integrityadmin भूमिका शामिल करने वाला composite बनानाcanMapComposite अभी भी checkAdminRoles को कॉल करता है
Integrityऐसे group में शामिल होना जिसके composite में admin भूमिका शामिल होCVE-2026-94000 GroupUtils.checkAdminGroupRoles में composites को walk करता है
Integrityऐसा उपयोगकर्ता बनाना जो पहले से उस group में होUsersResource.createUser पर वही walk
ReconAnonymous Admin RESTmanage-users token आवश्यक है
IntegrityHost RCE, realm-admin द्वारा realm-admin mint करनाClass से बाहर

GET /admin/realms/{realm} manage-users के लिए HTTP 403 नहीं है। वह भूमिका स्वयं एक admin भूमिका है, इसलिए सर्वर एक आंशिक दस्तावेज़ के साथ 200 लौटाता है। शेष वे फ़ील्ड हैं जो केवल कंपोज़िट मैप होने के बाद दिखाई देते हैं।

मैंने इसे कैसे खोजा

मैंने Keycloak 26.8.1 को पिन किया। फ़ाइन-ग्रेन्ड admin अनुमतियाँ v2 डिफ़ॉल्ट रूप से चालू हैं। RolePermissionsV2.canMapRole हर उस भूमिका के लिए true लौटाता है जो isRealmAdminRole में विफल होती है और कभी कंपोज़िट्स को नहीं चलाता। CVE-2026-94000 का फ़िक्स उन्हें केवल group पथ पर चलाता है।

पहले से दर्ज गलत मोड़: v1 isRealmAdminRole को लाइव जाँच मानना (v2 इसे ओवरराइड करता है); अनुदान से पहले realm GET पर HTTP 403 की अपेक्षा करना (लाइव परिणाम एक आंशिक 200 है); CVE-2026-94000 को फिर से दर्ज करना (group join, पहले से बंद); एक रिवर्स शेल। नाटक।

लैब

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

समाधान

RolePermissionsV2.canMapRole में कंपोज़िट को उसी तरह ट्रैवर्स करें जैसे GroupUtils.checkAdminGroupRoles समूह जॉइन के लिए पहले से करता है। जिस भूमिका में 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 को दें।

टूल डाउनलोड करें