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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-16540-SimplyScheduleAppointments — CVE-2026-16540 — Simply Schedule Appointments < 1.6.12.6 बिना प्रमाणीकरण के अपॉइंटमेंट डेटा का खुलासा और सामूहिक विलोपन | Kitploit
उपकरण/GitHubGitHub/huseyn0vs/cve-2026-16540-simplyscheduleappointments
भेद्यता विश्लेषणवेब एप्लिकेशन शोषणडेटा निष्कासनजानकारी एकत्र करनापेनिट्रेशन टेस्टिंगगलत कॉन्फ़िगरेशन
GitHubhuseyn0vs/cve-2026-16540-simplyscheduleappointments

CVE-2026-16540-SimplyScheduleAppointments

CVE-2026-16540 — Simply Schedule Appointments < 1.6.12.6 बिना प्रमाणीकरण के अपॉइंटमेंट डेटा का खुलासा और सामूहिक विलोपन

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
129 दिन पहलेअभी तक समीक्षित नहीं

CVE-2026-16540 — Simply Schedule Appointments < 1.6.12.6

purge एंडपॉइंट के माध्यम से अप्रमाणित अपॉइंटमेंट डेटा खुलासा और सामूहिक विलोपन

फ़ील्डविवरण
CVECVE-2026-16540
प्लगइनSimply Schedule Appointments
प्रभावित संस्करण< 1.6.12.6
समाधान संस्करण1.6.12.6
सक्रिय इंस्टॉल~70,000
CVSS 3.16.5 (मध्यम) — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
CWECWE-863 (गलत प्राधिकरण)
OWASPA5: भंग एक्सेस नियंत्रण
WPVDBc3829294-c388-4151-9e25-a3eac7b1f1c6
शोधकर्ताSuleyman Huseynov (@huseyn0vs__)
प्रकटीकरण2026-07-22

सारांश

Simply Schedule Appointments में GET /wp-json/ssa/v1/appointments/purge REST एंडपॉइंट एक प्राधिकरण जाँच (get_items_permissions_check) लागू करता है जो एक अपॉइंटमेंट के स्वामित्व को सिद्ध करने वाले id_token को मान्य करती है। हालाँकि, हैंडलर (purge_appointments()) यह पूरी तरह से अनदेखा कर देता है कि टोकन किस अपॉइंटमेंट का है और इसके बजाय दी गई शर्तों से मेल खाने वाले साइट-व्यापी सभी अपॉइंटमेंट पर कार्य करता है।

एक अप्रमाणित हमलावर जो सार्वजनिक बुकिंग फ़ॉर्म के माध्यम से कोई भी एक अपॉइंटमेंट बुक करता है, उसे एक id_token प्राप्त होता है। उस टोकन का उपयोग करके, हमलावर यह कर सकता है:

  1. साइट के सभी अपॉइंटमेंट का व्यक्तिगत डेटा प्राप्त करना (नाम, ईमेल, फ़ोन नंबर, अपॉइंटमेंट विवरण)
  2. सभी पिछले, रद्द या भविष्य के अपॉइंटमेंट को स्थायी रूप से हटाना (विलोपन केवल प्रीमियम संस्करणों में)

विलोपन कमिटेड ट्रांज़ैक्शन में 6 आश्रित डेटाबेस तालिकाओं में कैस्केड होता है, और इसमें कोई मूल पूर्ववत (undo) कार्यक्षमता नहीं होती।


मूल कारण विश्लेषण

फ़ाइल: includes/class-appointment-model.php

गलत-संसाधन प्राधिकरण (CWE-863)

अनुमति द्वार और हैंडलर पूरी तरह से अलग-अलग दायरों में कार्य करते हैं:

root@kitploit:~
// Route registration
register_rest_route( $namespace, '/' . $base . '/purge', array(
    array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => array( $this, 'purge_appointments' ),
        'permission_callback' => array( $this, 'get_items_permissions_check' ),
    ),
) );

अनुमति जाँच — id_token के माध्यम से एक अपॉइंटमेंट के स्वामित्व को मान्य करती है:

root@kitploit:~
public function get_items_permissions_check( $request ) {
    // ...
    if ( true === $this->id_token_permissions_check( $request ) ) {
        return true;  // grants access if caller proves ownership of one appointment
    }
    // ...
}

हैंडलर — टोकन के अपॉइंटमेंट को अनदेखा करता है और साइट-व्यापी रूप से कार्य करता है:

root@kitploit:~
public function purge_appointments( WP_REST_Request $request ) {
    $params = $request->get_params();

    // No customer_id or appointment_id scoping — deletes ALL matching appointments
    if ( isset( $params['purge_past_appointments'] ) && 'true' === $params['purge_past_appointments'] ) {
        $conditions[] = $wpdb->prepare( 'end_date < %s', $date_modified_max->format( 'Y-m-d' ) );
    }

    $sql = 'SELECT * FROM ' . $this->get_table_name()
         . ' WHERE ' . implode( ' OR ', $conditions )
         . ' ORDER BY id ASC LIMIT 5000';

    $list = $wpdb->get_results( $sql, ARRAY_A );
    // Cascade-deletes across 6 tables in committed transactions
}

id_token एक HMAC-MD5 है जो एकल अपॉइंटमेंट के id और date_created से व्युत्पन्न होता है। इस टोकन का होना केवल यह सिद्ध करता है कि कॉलर ने एक विशिष्ट अपॉइंटमेंट बुक किया था — यह किसी भी प्रकार का साइट-व्यापी विशेषाधिकार प्रदान नहीं करता।


हमले की श्रृंखला

root@kitploit:~
1. Attacker visits the booking page and books any free appointment
   → receives confirmation email containing: appointment_id + id_token

2. GET /wp-json/ssa/v1/appointments/purge
     ?id=<appointment_id>
     &token=<id_token>
     &purge_past_appointments=true

3. Permission check passes (valid token for attacker's own appointment)

4. Handler selects ALL past appointments site-wide → returns PII in response
   → permanently deletes them across 6 tables (on premium editions)

प्रूफ़ ऑफ़ कॉन्सेप्ट

PoC 2026-08-05 को प्रकाशित किया जाएगा समन्वित प्रकटीकरण एम्बार्गो के बाद।

एम्बार्गो तिथि के बाद poc/ निर्देशिका देखें।


प्रभाव

परिदृश्यपरिणाम
डेटा खुलासासभी ग्राहकों के नाम, ईमेल, फ़ोन नंबर, अपॉइंटमेंट विवरण
सामूहिक विलोपन (प्रीमियम)6 तालिकाओं में सभी ऐतिहासिक/भविष्य के अपॉइंटमेंट स्थायी रूप से नष्ट
कोई पुनर्प्राप्ति मार्ग नहींपूर्ण डेटाबेस बैकअप पुनर्स्थापना की आवश्यकता

प्रकटीकरण समयरेखा

तिथिघटना
2026-07-10भेद्यता की खोज हुई
2026-07-10WPScan को प्रस्तुत किया गया
2026-07-22CVE-2026-16540 आवंटित

संदर्भ

  • WPScan परामर्श
  • WordPress प्लगइन पृष्ठ
  • CWE-863: गलत प्राधिकरण
  • OWASP A5: भंग एक्सेस नियंत्रण
टूल डाउनलोड करें
2026-07-22WPScan पर सार्वजनिक खुलासा
2026-08-05PoC प्रकाशित