
CVE-2025-68999 के लिए PoC एक्सप्लॉइट - Happy Addons for Elementor <= 3.20.4 में सेकंड-ऑर्डर SQL इंजेक्शन
| CVSS | 8.5 HIGH |
| प्रभावित | <= 3.20.4 |
| पैच किया गया | 3.20.6 |
| न्यूनतम भूमिका | Contributor (edit_posts) |
| वेक्टर | नेटवर्क / कम जटिलता / कम विशेषाधिकार |
classes/clone-handler.php में duplicate_meta_entries() पोस्ट मेटा पंक्तियों को एक क्लोन किए गए पोस्ट में हाथ से बनाए गए बल्क INSERT का उपयोग करके कॉपी करता है। यह पंक्तियों को $wpdb->prepare() के साथ सुरक्षित रूप से प्राप्त करता है, लेकिन फिर $entry->meta_key को बिना एस्केप किए सीधे SQL स्ट्रिंग में डाल देता है:
$_records[] = "( $duplicated_post_id, '{$entry->meta_key}', '{$_value}' )";
// ...
$wpdb->query( $query );
चूँकि meta_key डेटाबेस से आता है, कोड इसे विश्वसनीय मानता है। लेकिन Contributor कस्टम फ़ील्ड्स पैनल के माध्यम से मनमाने फ़ील्ड नाम सेट कर सकते हैं — इसलिए वे नियंत्रित करते हैं कि उस कॉलम में क्या है।
हमला दो चरणों में होता है:
add_post_meta() इसे सुरक्षित रूप से संभालता है — पेलोड बिना कुछ निष्पादित किए DB में पहुँच जाता है।duplicate_meta_entries() कुंजी को वापस पढ़ता है और उसे कच्चे INSERT में जोड़ देता है। MySQL इंजेक्ट किए गए सबक्वेरी को निष्पादित करता है।स्टैटिक विश्लेषण इसे अनदेखा कर देता है क्योंकि खतरनाक डेटा का स्रोत एक DB रीड ($wpdb->get_results()) है, जिसे टेंट इंजन सैनिटाइज़्ड के रूप में चिह्नित करते हैं। स्टोरेज बाउंड्री टेंट चेन को तोड़ देती है।
कोई भी Contributor निकाल सकता है:
wp_options से कोई भी पंक्ति (API कुंजियाँ, भुगतान क्रेडेंशियल)प्रकटीकरण के समय 400K+ सक्रिय इंस्टॉल प्रभावित थे।
pip install requests
python3 poc.py https://target.com contributor p4ss
स्क्रिप्ट HTTP पर प्रमाणित होती है, इंजेक्शन पेलोड को कस्टम फ़ील्ड नाम के रूप में संग्रहीत करती है, Happy Clone क्रिया को ट्रिगर करती है, और क्लोन किए गए पोस्ट के मेटा फ़ील्ड्स से लीक हुए हैश को पढ़ती है। आउटपुट hash.txt में सहेजा जाता है।
hashcat -m 400 hash.txt rockyou.txt
| दिनांक | घटना |
|---|---|
| दिसंबर 2025 | SVN diff के माध्यम से खोजा गया। PoC की पुष्टि हुई। |
| दिसंबर 2025 | पूर्ण विवरण और PoC के साथ Patchstack Alliance को रिपोर्ट किया गया। |
| जनवरी 2026 | weDevs ने v3.20.6 में फिक्स जारी किया। |
| 23 जनवरी, 2026 | CVE-2025-68999 प्रकाशित। CVSS 8.5 HIGH निर्धारित किया गया। |
weDevs ने पूरे हाथ से बनाए गए INSERT को इससे बदल दिया:
foreach ( $entries as $entry ) {
update_post_meta( $duplicated_post_id, $entry->meta_key, $entry->meta_value );
}
update_post_meta() आंतरिक रूप से कुंजी और मान दोनों के लिए तैयार स्टेटमेंट के साथ $wpdb->update() को कॉल करता है।