
ड्रॉप-इन वर्डप्रेस प्लगइन जो FunnelForms Pro में कमजोर डेमो इम्पोर्ट हैंडलर को ब्लॉक करता है ताकि रिमोट कोड एक्ज़ीक्यूशन (CVE-2026-39440) को कम किया जा सके।
एक ड्रॉप-इन वर्डप्रेस प्लगइन जो FunnelForms Pro ≤ 3.8.1 में कमजोर डेमो इम्पोर्ट हैंडलर को ब्लॉक करता है ताकि रिमोट कोड एक्ज़ीक्यूशन (CVE-2026-39440, CVSS 9.9) को कम किया जा सके।
| फ़ील्ड | मान |
|---|---|
| CVE ID | CVE-2026-39440 |
| CVSS स्कोर | 9.9 (क्रिटिकल) |
| प्रभावित | FunnelForms Pro ≤ 3.8.1 |
| विशेषाधिकार | निम्न (सब्सक्राइबर-स्तर) |
| प्रकार | कोड इंजेक्शन → रिमोट कोड इंक्लूज़न → RCE |
| पैच किया गया? | अभी तक कोई आधिकारिक विक्रेता पैच उपलब्ध नहीं है |
| खोजकर्ता | 3ele / Sebastian Weiss |
| प्रकाशित | 21 अप्रैल 2026 (Patchstack) |
af2_demoimport AJAX हैंडलर (admin/menu_ajax_functions/demoimport.php) में दो घातक खामियाँ हैं:
unserialize()$jsonFile = file_get_contents( $imp_exp_tmp_path . 'af2_export.txt' );
$toImport = unserialize( urldecode( $jsonFile ) );
एक दुर्भावनापूर्ण af2_export.txt युक्त क्राफ्टेड ZIP फ़ाइल डिसीरियलाइज़ेशन पर PHP ऑब्जेक्ट इंजेक्शन ट्रिगर करती है — जिससे पूर्ण रिमोट कोड एक्ज़ीक्यूशन होता है।
$_POST['filename'] के माध्यम से पाथ ट्रैवर्सल$filename = $_POST['filename'];
$file = pathinfo( AF2_PLUGIN_DIR . '/demos/' . $locale . '/' . $filename . '.zip' );
कोई basename() नहीं, कोई व्हाइटलिस्ट नहीं। एक हमलावर ../../../uploads/evil प्रदान करता है और demos/ निर्देशिका के बाहर से एक मनमाना ZIP खींचता है।
न्यूनतम (सब्सक्राइबर) विशेषाधिकारों वाला एक प्रमाणित उपयोगकर्ता इस श्रृंखला का शोषण कर सकता है।
cve-2026-39440-funnelforms-fix फ़ोल्डर को wp-content/plugins/ पर अपलोड करेंcve-2026-39440-fix.php को सीधे wp-content/mu-plugins/ में कॉपी करें। किसी सक्रियण की आवश्यकता नहीं है — MU-प्लगइन्स स्वचालित रूप से लोड होते हैं।
| क्रिया | हुक | प्राथमिकता |
|---|---|---|
| AJAX हैंडलर को ब्लॉक करता है | wp_ajax_af2_demoimport |
कमजोर कोड पथ कभी निष्पादित नहीं होता। wp_send_json_error() आंतरिक रूप से wp_die() को कॉल करता है, इसलिए प्लगइन का हैंडलर कभी नहीं पहुँचता।
सक्रियण के बाद:
admin-ajax.php?action=af2_demoimport के लिए कोई भी अनुरोध लौटाता है:
{
"success": false,
"data": { "message": "सुरक्षा कारणों से डेमो इम्पोर्ट अस्थायी रूप से अक्षम है (CVE-2026-39440)।" }
}
इस प्लगइन को निष्क्रिय और हटाया जा सकता है जब FunnelForms Pro एक आधिकारिक पैच किया गया संस्करण (> 3.8.1) जारी करता है जो:
unserialize() को json_decode() से बदलता है या एक सख्त अनुमतिसूची लागू करता हैfilename पैरामीटर को सैनिटाइज़ करता है (basename(), ज्ञात डेमो की अनुमतिसूची)| 1 |
| एडमिन सबमेनू हटाता है | admin_menu | 999 |
| डेमोइम्पोर्ट JS/CSS को डीक्यू करता है | admin_enqueue_scripts | 20 |