
CVE-2026-12227 के लिए प्रूफ-ऑफ-कॉन्सेप्ट और तकनीकी विश्लेषण, WordPress Visual Composer प्लगइन (<=45.16.0) में एक अनऑथेंटिकेटेड 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) हो सकता है, जिससे सर्वर की गोपनीयता, अखंडता और उपलब्धता का पूर्ण समझौता संभव हो जाता है।
शोषण तकनीक: हमलावर एक दुर्भावनापूर्ण vcv-template मान बनाकर इसका शोषण कर सकते हैं जो सत्यापन को बायपास करने के लिए theme: प्रीफ़िक्स का उपयोग करता है, जैसा कि मूल कारण में वर्णित है। उदाहरण के लिए, एक अनुरोध इस तरह दिख सकता है: 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