
Technische Analyse und Proof-of-Concept für CVE-2025-69906, eine Schwachstelle für beliebiges Hochladen von Dateien in Monstra CMS 3.0.4, die über Blacklist-Umgehungstechniken zur Remote-Code-Ausführung führt.
Autor: David PS Abraham
Datum: 5. Februar 2026
Schweregrad: Kritisch – Remote Code Execution (CVSS 8.8+)
CWE: 434 (Unbeschränkter Upload von Dateien mit gefährlichem Typ)
Das Files Manager-Plugin von Monstra CMS v3.0.4 (plugins/box/filesmanager/filesmanager.admin.php) implementiert eine blacklist-basierte Dateierweiterungsvalidierung, die hochgeladene Dateien direkt in das web-zugängliche Verzeichnis /public/files/ speichert und so unter Standard-Apache/PHP-Konfigurationen Remote Code Execution ermöglicht.
Kernfehler (filesmanager.admin.php ~Zeilen 150-220):
// SCHWACHE BLACKLIST-VALIDIERUNG
$blacklist = array('.php', '.php3', '.php4', '.php5', '.phtml', '.pl', '.py', '.jsp', '.asp', '.sh', '.cgi');
$bypass = true;
foreach ($blacklist as $bad) {
if (strpos(strtolower($filename), $bad) !== false) {
$bypass = false;
break;
}
}
if ($bypass) {
// DIREKTER SCHREIBZUGRIFF AUF WEB-ROOT – Keine Bereinigung
$upload_path = BASE_PATH . DS . 'public' . DS . 'files' . DS;
move_uploaded_file($file['tmp_name'], $upload_path . $filename);
// http://ziel/public/files/shell.PHP wird ausgeführt!
}
| Auswirkung | Beschreibung |
|---|
Monstra CMS <= 3.0.4
Pfad: plugins/box/filesmanager/filesmanager.admin.php
Repo: https://github.com/monstra-cms/monstra/tree/dev/plugins/box/filesmanager
2026-02-05: CVE-2025-69906 von MITRE vergeben
2026-02-05: Öffentliche Offenlegung
1. Deaktivieren Sie das Files Manager-Plugin
2. Nur erlaubte Erweiterungen in eine Whitelist aufnehmen (image/png, image/jpeg)
3. Uploads umbenennen: uniqid() + .jpg
4. Außerhalb des Web-Root speichern
5. Zu einem gewarteten CMS migrieren
Entdeckt von: David PS Abraham (Cybersicherheitsforscher)
Verantwortungsvolle Offenlegung gemäß CVE-Vergabe. Keine Live-Ausbeutung durchgeführt.
Projekt laut Repository-Hinweis seit 2018 nicht mehr gewartet.
Kopieren Sie diesen gesamten Inhalt → Fügen Sie ihn in das README.md Ihres Repos ein → Commit & Push → Teilen Sie ihn in sozialen Kanälen.
| Schwachstelle | Umgehungsbeispiel | Ergebnis |
|---|
| Groß-/Kleinschreibung | shell.PHP, shell.pHp | ✅ Wird ausgeführt |
| Doppelte Erweiterung | shell.php.jpg | ✅ Wird ausgeführt |
| Null-Byte | shell.php%00.jpg | ✅ Wird ausgeführt |
| Nicht-standard PHP | shell.php7, shell.phtml | ✅ Wird ausgeführt |
| RCE | Beliebige PHP-Ausführung über hochgeladene Webshell |
| Rechteausweitung | Admin-authentifiziert → Server-Kompromittierung |
| Informationspreisgabe | Dateilesen via <?php echo file_get_contents('../config.php'); ?> |
| Angriffsvektor | Remote, authentifiziert (Files Manager-Oberfläche) |