
स्वतंत्र मूल कारण विश्लेषण और प्रूफ-ऑफ-कॉन्सेप्ट WordPress में अनप्रमाणित SQL इंजेक्शन से RCE के लिए (CVE-2026-63030 + CVE-2026-60137), Docker लैब और विस्तृत एक्सप्लॉइट श्रृंखला दस्तावेज़ीकरण के साथ।
वर्डप्रेस कोर ने 2026-07-17 को wp2shell को एक गंभीर, अप्रमाणित RCE के रूप में खुलासा किया जो डिफ़ॉल्ट इंस्टॉलेशन (वर्डप्रेस 6.9.0-6.9.4, 7.0.0-7.0.1, शून्य प्लगइन्स आवश्यक) को प्रभावित करता है। मूल खोजकर्ता (सर्चलाइट साइबर) ने खुलासा के समय तकनीकी विवरण रोक दिए। यह रिपॉजिटरी एक स्वतंत्र मूल-कारण विश्लेषण का दस्तावेजीकरण करती है जो पूरी तरह से कमजोर (6.9.4) और पैच किए गए (6.9.5) रिलीज के बीच वर्डप्रेस कोर स्रोत को डिफ करने से प्राप्त हुआ है, साथ ही स्थानीय प्रयोगशाला में लाइव सत्यापन।
श्रेय: यहां पुनरुत्पादन sergiointel/wp2shell-poc से अनुरोध स्वरूप का अनुसरण करता है, बाइट-दर-बाइट पुष्टि की गई और वास्तविक पैच डिफ के विरुद्ध क्रॉस-चेक किया गया।
root_cause_analysis.md - पूर्ण लिखावट: दो श्रृंखलित बग, सटीक कमजोर कोड, पैच डिफ, शोषण श्रृंखला, और वास्तविक WP 6.9.4 इंस्टेंस के विरुद्ध लाइव पहले/बाद सत्यापन।poc_upstream.py - sergiointel के मूल PoC की अपरिवर्तित प्रतिलिपि (केवल SQLi)।poc_upstream_rce.py - sergiointel का PoC जैसा कि खुलासा के लगभग 22 घंटे बाद अपडेट किया गया, बिना किसी क्रेडेंशियल को क्रैक किए अप्रमाणित विशेषाधिकार वृद्धि और RCE जोड़ता है। root_cause_analysis.md का खंड 7 देखें।poc_extract.py / poc_extract2.py - एक ट्यून किया गया वैरिएंट (बड़ा SLEEP(), उच्च समय सीमा, लंबी अक्षर-खोज सीमा) जो डॉकरीकृत/प्रॉक्सीड प्रयोगशाला में विश्वसनीय संकेत प्राप्त करने के लिए आवश्यक है जहां अपस्ट्रीम स्क्रिप्ट का डिफ़ॉल्ट SLEEP(0.15) नेटवर्क जिटर में खो गया था।docker-compose.yml - सत्यापन के लिए उपयोग किए गए समान वर्डप्रेस 6.9.4 + MariaDB प्रयोगशाला को स्पिन अप करें।payload.json, response.json, response_patched.json - PoC की संरचना और कच्चे सर्वर प्रतिक्रियाओं को दोहराने वाला हस्तनिर्मित अनुरोध, 6.9.5 पैच फ़ाइलों को लागू करने से पहले और बाद में।दूसरा, स्वतंत्र रूप से लिखा गया PoC (github.com/Icex0/wp2shell-poc) पूर्ण रूप से समीक्षा किया गया और उसी मूल कारण तंत्र का स्वतंत्र रूप से वर्णन करता है, नीचे दिए गए विश्लेषण की पुष्टि करता है। इसकी सामग्री-आधारित (बूलियन, समय-आधारित नहीं) ब्लाइंड SQLi निष्कर्षण का उपयोग करके, इस प्रयोगशाला के व्यवस्थापक क्रेडेंशियल हैश को 100% सटीकता के साथ पुनर्प्राप्त किया गया, और उस ज्ञात क्रेडेंशियल का उपयोग करके, एक पूर्ण SQLi-से-RCE श्रृंखला लाइव प्रदर्शित की गई: SQL इंजेक्शन से क्रेडेंशियल निष्कर्षण तक, प्रमाणित प्लगइन-अपलोड वेबशेल से www-data के रूप में कोड निष्पादन तक। root_cause_analysis.md का खंड 6 देखें।
वह क्रेडेंशियल-क्रैकिंग पथ वास्तविक है लेकिन यह एकमात्र नहीं है। sergiointel के PoC को बाद में बिना किसी क्रेडेंशियल क्रैकिंग के अप्रमाणित RCE प्राप्त करने के लिए अपडेट किया गया, UNION SELECT का उपयोग करके नकली डेटाबेस पंक्तियों को गढ़ने के लिए जो वर्डप्रेस के अपने कस्टमाइज़र/नेव-मेनू/oEmbed-कैश कोड पर इतना भरोसा करता है कि एक अप्रमाणित उपयोगकर्ता-निर्माण अनुरोध सफल हो सके। root_cause_analysis.md का खंड 7 देखें। अप्रमाणित SQL इंजेक्शन अकेला डिफ़ॉल्ट इंस्टॉलेशन पर पूर्ण RCE के लिए पर्याप्त है।
CVE-2026-63030 (REST बैच रूट भ्रम, CWE-436): WP_REST_Server::serve_batch_request_v1() एक साधारण पुश द्वारा $matches[] ऐरे में जोड़ता है, लेकिन जब सब-रिक्वेस्ट का पथ पार्स करने में विफल होता है (जैसे कि जानबूझकर विकृत "http://:" प्रविष्टि) तो जोड़ना छोड़ देता है। वह एकल छोड़ प्रत्येक अनुवर्ती प्रविष्टि के लिए $matches[] को $requests[] से एक इंडेक्स द्वारा डिसिंक्रोनाइज़ कर देता है। डिस्पैच समय पर, $matches[$i] अब $requests[$i] के अनुरूप नहीं होता, इसलिए कोड उस रूट के मिलान हैंडलर के तहत एक अनुरोध के डेटा को निष्पादित करता है जो वास्तव में इसके विरुद्ध मान्य किया गया था, उससे भिन्न होता है।
CVE-2026-60137 (SQL इंजेक्शन): WP_Query::get_posts() ने केवल is_array() शाखा के अंदर author__not_in पर absint() स्वच्छता चलाई। एक स्केलर स्ट्रिंग मान पूरी तरह से स्वच्छता को छोड़ देता था और सीधे ... post_author NOT IN ($value) में संयोजित किया जाता था।
श्रृंखलित: रूट-भ्रम बग एक हमलावर को /wp/v2/categories के विरुद्ध घोषित अनुरोध (जो author_exclude को नहीं पहचानता, इसलिए इसे कभी स्वच्छ नहीं किया जाता) वास्तव में पोस्ट्स नियंत्रक के माध्यम से प्रेषित करने देता है (जो author_exclude को पढ़ता है और इसे WP_Query में अग्रेषित करता है)। कोई प्रमाणीकरण आवश्यक नहीं।
RCE दावे पर: लाइव पुष्टि की गई कि अप्रमाणित ब्लाइंड SQL इंजेक्शन काम करता है और wp_users.user_pass सहित मनमाना DB सामग्री निकाल सकता है। वर्चुअलाइज्ड प्रयोगशाला में एक एकल समय-आधारित निष्कर्षण पास में सार्थक बिट-त्रुटि शोर था (यहां परीक्षण में ~94% प्रति-अक्षर सटीकता); एक सामग्री-आधारित (बूलियन) ओरेकल ने उस विफलता मोड को साझा नहीं किया और उसी फ़ील्ड को 100% सटीकता के साथ पुनर्प्राप्त किया। RCE की पुष्टि दो अलग-अलग पथों के माध्यम से की गई: एक पुनर्प्राप्त पासवर्ड हैश को क्रैक करना (पासवर्ड ताकत पर सशर्त), और UNION-गढ़े गए डेटाबेस पंक्तियों का उपयोग करके एक अप्रमाणित विशेषाधिकार-वृद्धि गैजेट श्रृंखला जिस पर वर्डप्रेस का अपना कस्टमाइज़र/नेव-मेनू/oEmbed-कैश कोड भरोसा करता है (बिना शर्त, कोई क्रेडेंशियल समझौता आवश्यक नहीं)। root_cause_analysis.md का खंड 7 देखें।
docker compose up -d
# wait for WordPress install wizard to be reachable on :8890, then complete setup
HTTP_PROXY=http://127.0.0.1:8080 HTTPS_PROXY=http://127.0.0.1:8080 \
python3 poc_extract2.py http://localhost:8890 "SELECT DATABASE()"
पूर्ण तकनीकी लिखावट के लिए root_cause_analysis.md देखें।
वर्डप्रेस ने आधिकारिक फिक्स प्रकाशित किए हैं: 6.9.5 और 7.0.2 (बीटा शाखा के लिए 7.1 बीटा 2), 2026-07-17 को जारी किए गए। यदि आप प्रभावित संस्करण चलाते हैं तो तुरंत अपडेट करें। यह रिपॉजिटरी पैच के सार्वजनिक होने के बाद रक्षात्मक और शैक्षिक उद्देश्यों के लिए प्रकाशित की गई है। यहां किसी भी कोड को केवल उन सिस्टमों के विरुद्ध चलाएं जिनके आप मालिक हैं या जिनका परीक्षण करने के लिए आप स्पष्ट रूप से अधिकृत हैं।