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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-87902 — WordPress Core <= 7.1.1 अनधिकृत LFI से RCE - सत्यापन लैब, PoC, nuclei टेम्पलेट (GHSA-7hp8-65ch-5whp) | Kitploit
उपकरण/GitHubGitHub/hassham1/cve-2026-87902
भेद्यता स्कैनरभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगपेपर और शोधलर्निंग और शिक्षापेलोड डेवलपमेंटलैब और अभ्यास
GitHubhassham1/cve-2026-87902
1418घं 15मि पहलेअभी तक समीक्षित नहीं

CVE-2026-87902

WordPress Core <= 7.1.1 अनधिकृत LFI से RCE - सत्यापन लैब, PoC, nuclei टेम्पलेट (GHSA-7hp8-65ch-5whp)

रिपॉजिटरी देखें

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

CVE-2026-87902 - WordPress Core अनधिकृत LFI → RCE सत्यापन लैब

CVE-2026-87902 (GHSA-7hp8-65ch-5whp) को एक पृथक, केवल-लूपबैक Docker लैब में पुनरुत्पादित और सत्यापित करने के लिए सुरक्षा-अनुसंधान सामग्री: WordPress कोर पेज-टेम्पलेट रिज़ॉल्यूशन में एक अनधिकृत स्थानीय फ़ाइल समावेशन, जो रिमोट कोड निष्पादन तक बढ़ाया जा सकता है।

  • प्रभावित: WordPress 4.7.0 से 7.1.1 तक (प्रत्येक अनुरक्षित शाखा)
  • ठीक किया गया: 7.1.2 और प्रति-शाखा बैकपोर्ट (4.7.37, 5.9.18, 6.9.9, 7.0.6, …) - 22 सितंबर 2026
  • CVSS 4.0: 9.2 (AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N)
  • CWE-98 - Include/Require स्टेटमेंट के लिए फ़ाइलनाम का अनुचित नियंत्रण

निर्णय

स्थिति: प्रदान की गई लैब में सिद्ध।

WordPress 7.1.1 (Twenty Twelve थीम) एक अनधिकृत हमलावर को pagename क्वेरी वेरिएबल के माध्यम से थीम निर्देशिका के बाहर से PHP फ़ाइलें शामिल करने की अनुमति देता है, और - आधिकारिक PHP इमेज के स्टॉक register_argc_argv = On के साथ - PEAR pearcmd.php के माध्यम से एक मार्कर फ़ाइल लिखने और निष्पादित करने की अनुमति देता है:

root@kitploit:~
WordPress: 7.1.1 Theme: twentytwelve (page-templates/ present) PHP: 8.2 (official image, register_argc_argv=On, PEAR present) Result: LFI oracle fired (<opml version="1.0">); marker probe executed as uid=33(www-data) and self-deleted

समान सेटअप के साथ WordPress 7.1.2 ओरेकल को पूरी तरह से अवरुद्ध कर देता है (नकारात्मक नियंत्रण)। यह कंटेनर के अंदर WordPress वेब-सर्वर उपयोगकर्ता के रूप में कोड निष्पादन प्रदर्शित करता है। यह रूट एक्सेस, कंटेनर एस्केप, पार्श्व गति, या होस्ट समझौता प्रदर्शित नहीं करता है।

त्वरित शुरुआत

आवश्यकताएँ: Compose v2 के साथ Docker, Python 3.10+, Docker Hub और wordpress.org (थीम इंस्टॉल) तक नेटवर्क पहुँच।

root@kitploit:~
./lab verify

यह कमजोर लैब का निर्माण करता है, LFI ओरेकल और RCE मार्कर के सक्रिय होने की आवश्यकता रखता है, फिर पैच किए गए लैब का निर्माण करता है और ओरेकल के शांत रहने की आवश्यकता रखता है।

किसी अन्य लूपबैक पोर्ट का उपयोग करने के लिए: LAB_PORT=9499 ./lab verify।

बाद में सब कुछ हटाने के लिए ./lab reset का उपयोग करें।

अपेक्षित प्रमाण

कमजोर नियंत्रण:

root@kitploit:~
[+] page-* folder(s) reachable: page-templates (traversal can resolve)
[!!!] LFI CONFIRMED (safe oracle: wp-links-opml.php)
...
[RCE] pearcmd.php reachable and taking argv: /usr/local/lib/php/pearcmd.php
[!!!] RCE CONFIRMED (pearcmd.php config-create file write):
  evidence: uid=33(www-data) (command `id` ran as the web user)
  cleanup : probe self-deleted on execution: confirmed
RESULT: VULNERABLE CONTROL CONFIRMED

पैच किया गया नियंत्रण:

root@kitploit:~
[=] oracles did not fire: target patched (>= 7.1.2), ...
RESULT: PATCHED CONTROL CONFIRMED

HTTP 200, WAF ब्लॉक, या ओरेकल मार्कर के बिना आंशिक ट्रैवर्सल को प्रमाण के रूप में स्वीकार नहीं किया जाता है।

मैनुअल लैब जीवनचक्र

root@kitploit:~
./lab start vulnerable   # fresh 7.1.1 lab on 127.0.0.1:9471
./lab test               # assert LFI + RCE
./lab start patched      # fresh 7.1.2 lab
./lab test               # assert oracle absence
./lab status
./lab reset              # containers, volumes, state

चल रही लैब के विरुद्ध टूलिंग को मैन्युअल रूप से चलाएँ:

root@kitploit:~
python3 poc/triage_cve_2026_87902.py --url http://127.0.0.1:9471
python3 poc/poc_cve_2026_87902.py --url http://127.0.0.1:9471 --rce
nuclei -t nuclei/cve-2026-87902.yaml -u http://127.0.0.1:9471 -silent

उन सिस्टमों के लिए जिनके आप स्वामी हैं या जिनका परीक्षण करने के लिए आपको स्पष्ट रूप से अधिकृत किया गया है (बग-बाउंटी स्कोप, लिखित एंगेजमेंट), ड्राइवरों को स्पष्ट ओवरराइड की आवश्यकता होती है:

root@kitploit:~
python3 poc/poc_cve_2026_87902.py --url https://target.example \
  --allow-authorized-non-loopback [--insecure] [--rce]

मूल कारण

wp-includes/template.php में get_page_template() pagename क्वेरी वेरिएबल से एक उम्मीदवार टेम्पलेट फ़ाइलनाम बनाता है। तीन पंक्तियाँ ऊपर की सहोदर शाखा पेज-टेम्पलेट स्लग को validate_file() के माध्यम से पास करती है; pagename शाखा ने कभी ऐसा नहीं किया, और इसके अतिरिक्त एक अतिरिक्त urldecode()-डिकोड किए गए उम्मीदवार को जोड़ती है:

root@kitploit:~
// wp-includes/template.php, get_page_template(), WordPress <= 7.1.1
if ( $pagename ) {
    $pagename_decoded = urldecode( $pagename );
    if ( $pagename_decoded !== $pagename ) {          // 7.1.2 adds validate_file()
        $templates[] = "page-{$pagename_decoded}.php";
    }
    $templates[] = "page-{$pagename}.php";
}

7.1.2 डिकोड किए गए उम्मीदवार पर validate_file() लागू करता है और एक कंटेनमेंट गेट (_wp_is_template_path_allowed()) जोड़ता है जिसे प्रत्येक हल किए गए टेम्पलेट पथ को पास करना होता है।

पूर्वापेक्षाएँ

  1. सक्रिय थीम (चाइल्ड या पैरेंट - locate_template() दोनों की जाँच करता है) में page- से शुरू होने वाली एक शीर्ष-स्तरीय निर्देशिका होनी चाहिए। लिगेसी डिफ़ॉल्ट थीम (Twenty Twelve, Twenty Fourteen) और कई wp.org थीम (Neve, Hestia, Sydney) योग्य हैं। शोधित वाणिज्यिक थीम (Divi, Avada, Flatsome, Woodmart, Betheme, The7, Enfold, Salient, Jupiter/X, Porto, Houzez, XStore, Kalium, Uncode) में कोई नहीं होती - ट्रैवर्सल हल नहीं हो सकता; मिरर-सोर्स्ड सूची के लिए PoC में PRO_THEME_PAGE_DIRS देखें।
  2. शामिल की गई फ़ाइल का अंत .php में होना चाहिए (कोड द्वारा जोड़ा गया)।
  3. RCE को अतिरिक्त रूप से register_argc_argv = On और PEAR की pearcmd.php की आवश्यकता होती है।

लैब-सत्यापित परिचालन नोट्स (सार्वजनिक सलाहकारों से परे)

सलाहकार और Patchstack राइटअप एक कार्यशील अनुरोध प्रकाशित करने से इनकार करते हैं। ये विवरण इस लैब में अनुभवजन्य रूप से स्थापित किए गए थे:

  1. एक page_id एंकर अनिवार्य है। एक अनसुलझा pagename is_404 को फ्लिप करता है, जिसका टेम्पलेट get_page_template() को पूरी तरह से छाया देता है। क्वेरी को किसी भी हल करने योग्य प्रकाशित page_id के साथ एंकर करें।
  2. पूर्ण डबल-एन्कोडिंग आवश्यक है। get_posts() pagename को sanitize_title_for_query( wp_basename( … ) ) के माध्यम से फिर से लिखता है: कच्चा .. - बन जाता है, लेकिन %hex अनुक्रम बच जाते हैं; get_page_template() में अतिरिक्त urldecode() ट्रैवर्सल को प्रकट करता है। केवल %252e/%252f काम करता है।
  3. सुंदर परमालिंक POST को बाध्य करते हैं (redirect_canonical GET को 301 करता है और पेलोड को छोड़ देता है; यह गैर-GET/HEAD के लिए तुरंत लौटता है)।
  4. सटीक गहराई: मानक डॉकरूट पर page-templates/ से चार ../।
  5. पेलोड POST बॉडी से भी सक्रिय होता है (WP $_POST को क्वेरी वेरिएबल्स में मर्ज करता है) - WAF-एवेज़न टियर का आधार।
  6. pearcmd ट्रांसपोर्ट विचित्रताएँ: PHP $argv टोकन को urldecode नहीं करता, और PEAR का कॉन्फ़िग सीरियलाइज़र दोनों कोट शैलियों को एस्केप करता है - इसलिए कच्चा, कोटलेस, +-पृथक प्रोब।

टूलकिट

पथउद्देश्य
poc/poc_cve_2026_87902.pyपूर्ण PoC: संस्करण + WAF फ़िंगरप्रिंट, थीम/page-* फ़ोल्डर गणना (wp.org SVN, एसेट-रेफ़रेंस डिस्कवरी, शोधित प्रो-थीम मैप), एंकर डिस्कवरी, 8-वेरिएंट LFI ओरेकल, तुलनात्मक खाली-बॉडी फ़ॉलबैक ओरेकल, --rce pearcmd चेन, --lab docker डेमो
poc/triage_cve_2026_87902.pyनामित विफल गेट के साथ प्रति-लक्ष्य या बैच निर्णय (EXPLOITABLE / NOT EXPLOITABLE / WAF SUSPECTED / INCONCLUSIVE)
poc/bounty_screen.pyएक इन-स्कोप बग-बाउंटी एसेट सूची पर काम करता है: crt.sh वाइल्डकार्ड विस्तार → WP फ़िल्टर → पूर्वापेक्षा स्क्रीन → उम्मीदवार हैंडऑफ़
nuclei/cve-2026-87902.yamlNuclei टेम्पलेट: सुरक्षित LFI ओरेकल (174 पेलोड: 10 page-* शेष, डबल/ट्रिपल-एन्कोडेड टियर, आईडी 1–30)

WAF फ़िंगरप्रिंटिंग में Imperva/Incapsula, Cloudflare, Akamai, AWS CloudFront/WAF, Sucuri, F5 शामिल हैं। आठ ओरेकल वेरिएंट: डबल-एन्कोडेड, वैकल्पिक %25%32%65 स्पेलिंग, पैरामीटर प्रदूषण, ट्रिपल-एन्कोडेड - प्रत्येक क्वेरी स्ट्रिंग और POST बॉडी में। मल्टीपार्ट बॉडी और कच्चे-स्लैश पेलोड का परीक्षण किया गया और अस्वीकार कर दिया गया (WP इस सिंक के लिए उन्हें प्रोसेस नहीं करता)।

प्रभावित और परीक्षित संस्करण

संस्करणमूल्यांकन
WordPress 7.1.1LFI + pearcmd RCE एंड टू एंड पुनरुत्पादित
WordPress 6.5.3 / 5.9.17LFI ओरेकल पुनरुत्पादित
WordPress 4.7.0–7.1.1 (अन्य शाखाएँ)प्रभावित बताया गया; GHSA के अनुसार शाखा तालिका
WordPress 7.1.2पैच किया गया नकारात्मक नियंत्रण पुनरुत्पादित

रिपॉज़िटरी लेआउट

root@kitploit:~
.
├── .github/workflows/validate.yml
├── .gitignore
├── LICENSE
├── README.md
├── SECURITY.md
├── docker-compose.yml
├── lab
├── nuclei/
│   └── cve-2026-87902.yaml
└── poc/
    ├── bounty_screen.py
    ├── poc_cve_2026_87902.py
    └── triage_cve_2026_87902.py

कमिट नहीं किया गया: .lab-state, __pycache__/, स्क्रीनर आउटपुट फ़ाइलें।

सत्यापन सीमाएँ

दावास्थिति
थीम निर्देशिका के बाहर अनधिकृत LFIसिद्ध (7.1.1, 6.5.3, 5.9.17)
वेब उपयोगकर्ता के रूप में pearcmd.php config-create के माध्यम से RCEसिद्ध (7.1.1 लैब)
प्रोब स्व-विलोपन / कोई स्थायी आर्टिफ़ैक्ट नहींसिद्ध
पैच किया गया नकारात्मक नियंत्रण (7.1.2)सिद्ध
प्रत्येक मध्यवर्ती प्रभावित रिलीज़ का परीक्षणपरीक्षण नहीं किया गया
लाइव वाणिज्यिक WAF के विरुद्ध WAF बायपास वेरिएंटलैब-व्युत्पन्न, WAF-परीक्षित नहीं
रूट विशेषाधिकार / कंटेनर एस्केप / होस्ट समझौतादावा नहीं किया गया

संदर्भ

  • GHSA-7hp8-65ch-5whp
  • Patchstack: WordPress 7.1.2 security release - unauthenticated LFI to RCE
  • Hadrian: CVE-2026-87902 working PoC - independent reconstruction (page_id एंकर और डबल-एन्कोडिंग आवश्यकताओं की पुष्टि करता है; तुलनात्मक wp-content/index.php खाली-बॉडी ओरेकल का स्रोत, यहाँ कठोर साइटों के लिए फ़ॉलबैक के रूप में शामिल)
  • dinosn: cve-2026-87902-wordpress-lfi-lab (समान अनुरोध आकारों पर पहुँचने वाली स्वतंत्र लैब; अब प्रत्येक ओरेकल हिट पर लागू गैर-मौजूद-लक्ष्य कारण नियंत्रण का स्रोत)
  • WordPress 7.1.2 release announcement
  • NVD entry

भेद्यता की रिपोर्ट Robert Ressl द्वारा की गई। यह रिपॉज़िटरी स्वतंत्र तृतीय-पक्ष विश्लेषण और टूलिंग है।

लाइसेंस

MIT - LICENSE देखें।

सुरक्षा सीमा

इस रिपॉज़िटरी को केवल उन सिस्टमों पर चलाएँ जिनके आप स्वामी हैं या जिनका परीक्षण करने के लिए आपको स्पष्ट रूप से अधिकृत किया गया है। लैब ड्राइवर vulnerable/patched के अलावा अन्य वेरिएंट से इनकार करता है, Python ड्राइवर गैर-लूपबैक लक्ष्यों से इनकार करते हैं जब तक कि --allow-authorized-non-loopback प्रदान न किया जाए, और Compose पोर्ट 127.0.0.1 से बंधा है।

प्रकटीकरण हैंडलिंग के लिए SECURITY.md देखें। इस रिपॉज़िटरी में उत्पादन लक्ष्य, ग्राहक डेटा, एक्सेस टोकन, या वास्तविक सिस्टमों से प्रमाण शामिल नहीं हैं।

विशेष रूप से:

  • Docker WordPress को केवल 127.0.0.1 पर प्रकाशित करता है।
  • डिफ़ॉल्ट PoC मोड एक हानिरहित LFI ओरेकल है: यह wp-links-opml.php को शामिल करता है, एक स्टॉक कोर फ़ाइल जो एक OPML दस्तावेज़ प्रिंट करती है।
  • --rce ऑप्ट-इन है और सार्वजनिक रूप से प्रलेखित pearcmd.php config-create तकनीक के माध्यम से एक कोटलेस, स्व-विलोपन मार्कर प्रोब (<?=id,unlink(__FILE__)?>) लिखता है; प्रोब अपने एकल निष्पादन पर स्वयं को हटा देता है और PoC विलोपन को सत्यापित करता है। कोई शेल, कॉलबैक, या दृढ़ता नहीं।
  • लैब प्रत्येक start पर प्राचीन आधिकारिक इमेज से पुनः प्रावधान करता है; कोई लक्ष्य इंस्ट्रुमेंटेशन नहीं।
  • अनुरोध एकल-होस्ट, अनुक्रमिक, और दर-सीमित हैं। कोई सामूहिक स्कैनिंग नहीं।
टूल डाउनलोड करें