
CVE-2026-12227 के लिए प्रूफ-ऑफ-कॉन्सेप्ट और तकनीकी विश्लेषण, जो WordPress Visual Composer प्लगइन में vcv-template पैरामीटर के माध्यम से एक अनऑथेंटिकेटेड LFI/RCE है।
CVE-2026-12227, WordPress के लिए Visual Composer Website Builder प्लगइन में एक गंभीर (CVSS 9.8) अनधिकृत लोकल फ़ाइल इन्क्लूज़न (LFI) भेद्यता है, जो संस्करण 45.16.0 तक और उस सहित सभी संस्करणों को प्रभावित करती है। यह दोष vcv-template पैरामीटर में है, जो एक हमलावर को सर्वर पर मनमानी फ़ाइलों को शामिल करने और निष्पादित करने की अनुमति देता है। यह संवेदनशील डेटा एक्सपोज़र, एक्सेस कंट्रोल बायपास, या यदि सर्वर वातावरण गलत तरीके से कॉन्फ़िगर किया गया है तो पूर्ण रिमोट कोड एक्सीक्यूशन (RCE) तक ले जा सकता है।
CVE-2026-12227
9.8/10
Visual Composer Website Builder Plugin (संस्करण 45.16.0 तक)
मूल कारण: इस भेद्यता को CWE-98 के रूप में वर्गीकृत किया गया है: PHP प्रोग्राम में Include/Require स्टेटमेंट के लिए फ़ाइलनाम का अनुचित नियंत्रण (जिसे अक्सर PHP रिमोट फ़ाइल इन्क्लूज़न कहा जाता है)। यह PageTemplatesController.php फ़ाइल में एक लॉजिक दोष से उत्पन्न होती है, विशेष रूप से viewPageTemplate() फ़ंक्शन के भीतर, जो बिना किसी प्रमाणीकरण जाँच के प्राथमिकता 11 पर WordPress के template_include फ़िल्टर से जुड़ता है।
मुख्य समस्या एक "validate-then-mutate" दोष है:
सत्यापन (कच्चे इनपुट पर): कोड पहले vcv-template पैरामीटर के कच्चे, उपयोगकर्ता-आपूर्त मान पर WordPress के validate_file() फ़ंक्शन को कॉल करता है। यह फ़ंक्शन ... जैसे शाब्दिक डायरेक्टरी ट्रैवर्सल अनुक्रमों वाले पथों को अस्वीकार करने के लिए डिज़ाइन किया गया है। इस चरण में, दुर्भावनापूर्ण इनपुट theme:.theme:./.theme:./.theme:./wp-links-opml.php में कोई शाब्दिक .. नहीं है, इसलिए यह सत्यापन पास कर लेता है।
परिवर्तन (सत्यापन के बाद): सत्यापन के तुरंत बाद, कोड जाँचता है कि क्या टेम्पलेट प्रकार vc-custom-layout है और क्या मान में theme: स्ट्रिंग है। यदि हाँ, तो यह str_replace('theme:', '', $current['value']) करता है, जो मान से theme: की सभी घटनाओं को हटा देता है।
सिंक: परिवर्तित मान फिर locate_template() को पास किया जाता है, जो पथ को हल करता है और फ़ाइल को शामिल करता है। चूँकि theme: स्ट्रिंग्स हटा दी गई थीं, खंडित ट्रैवर्सल अनुक्रम आपस में जुड़ जाते हैं, जिससे ../../../../wp-links-opml.php जैसा एक वैध पथ बनता है जिसे उसके अंतिम रूप में कभी सत्यापित नहीं किया गया था।
हमला सतह: हमला वेक्टर: नेटवर्क (AV:N) — भेद्यता सीधे HTTP/HTTPS पर पहुँच योग्य है।
प्रमाणीकरण: किसी की आवश्यकता नहीं (PR:N) — यह एक अनधिकृत भेद्यता है। कोई भी रिमोट हमलावर बिना वैध खाते के इसे ट्रिगर कर सकता है।
उपयोगकर्ता इंटरैक्शन: किसी की आवश्यकता नहीं (UI:N)।
प्रभावित घटक: WordPress के लिए Visual Composer Website Builder प्लगइन।
भेद्य पैरामीटर: vcv-template पैरामीटर, जिसका उपयोग vcv-template-type पैरामीटर के साथ मिलकर किया जाता है।
ट्रिगर शर्त: प्लगइन को WordPress साइट पर इंस्टॉल और सक्रिय होना चाहिए, और Visual Composer के साथ एक फ्रंट-एंड पेज बनाया गया होना चाहिए (अर्थात, एक सामान्य परमालिंक मौजूद होना चाहिए)।
शोषण नोट्स: प्रभाव: यह दोष एक अनधिकृत हमलावर को सर्वर पर मनमानी स्थानीय फ़ाइलों को शामिल करने और निष्पादित करने की अनुमति देता है। चूँकि शामिल PHP फ़ाइलें निष्पादित होती हैं, यह रिमोट कोड एक्सीक्यूशन (RCE) तक ले जा सकता है, जिससे सर्वर की गोपनीयता, अखंडता और उपलब्धता का पूर्ण समझौता संभव हो जाता है।
शोषण तकनीक: हमलावर मूल कारण में वर्णित अनुसार सत्यापन को बायपास करने के लिए theme: प्रीफ़िक्स का उपयोग करने वाला एक दुर्भावनापूर्ण vcv-template मान बनाकर इसका शोषण कर सकते हैं। उदाहरण के लिए, एक अनुरोध इस प्रकार दिख सकता है: POST /?vcv-template-type=vc-custom-layout&vcv-template=theme:.theme:./.theme:./.theme:./wp-links-opml.php.
RCE एस्केलेशन: हालाँकि LFI स्वयं गंभीर है, RCE प्राप्त करना अक्सर सर्वर वातावरण पर निर्भर करता है। एक सामान्य विधि है सर्वर पर पहले से अपलोड की गई फ़ाइल को शामिल करना (उदाहरण के लिए, एक प्रतीत होता हानिरहित छवि फ़ाइल जिसमें एम्बेडेड PHP कोड हो) या अन्य सर्वर मिसकॉन्फ़िगरेशन का लाभ उठाना।
PoC उपलब्धता: कई प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट सार्वजनिक रूप से उपलब्ध हैं, जिनमें एक Python स्क्रिप्ट और एक Nuclei टेम्पलेट शामिल है, जिनका उपयोग अधिकृत लैब वातावरण में सत्यापन के लिए किया जा सकता है
[*] Python कोड ऊपर दिया गया है
पैच संस्करण: 45.16.1