
Autore: David PS Abraham
Data: 5 febbraio 2026
Gravità: Critica - Esecuzione di Codice Remota (CVSS 8.8+)
CWE: 434 (Caricamento senza restrizioni di un file con tipo pericoloso)
Il plugin Files Manager di Monstra CMS v3.0.4 (plugins/box/filesmanager/filesmanager.admin.php) implementa una validazione delle estensioni dei file basata su blacklist che salva i file caricati direttamente nella directory /public/files/ accessibile dal web, consentendo l'esecuzione remota di codice in configurazioni standard Apache/PHP.
Difetto Principale (filesmanager.admin.php ~righe 150-220):
// WEAK BLACKLIST VALIDATION
$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) {
// DIRECT WEB-ROOT WRITE - No sanitization
$upload_path = BASE_PATH . DS . 'public' . DS . 'files' . DS;
move_uploaded_file($file['tmp_name'], $upload_path . $filename);
// http://target/public/files/shell.PHP executes!
}
| Impatto | Descrizione |
|---|
Monstra CMS <= 3.0.4
Path: plugins/box/filesmanager/filesmanager.admin.php
Repo: https://github.com/monstra-cms/monstra/tree/dev/plugins/box/filesmanager
2026-02-05: CVE-2025-69906 assigned by MITRE
2026-02-05: Public disclosure
1. Disable Files Manager plugin
2. Whitelist ALLOWED extensions only (image/png, image/jpeg)
3. Rename uploads: uniqid() + .jpg
4. Store outside web root
5. Migrate to maintained CMS
Scoperto da: David PS Abraham (Ricercatore di Cybersecurity)
Divulgazione responsabile in seguito all'assegnazione del CVE. Nessuna exploitazione dal vivo effettuata.
Progetto non più mantenuto dal 2018, come indicato nell'avviso del repository.
[1]
Copia l'intero contenuto → Incollalo nel README.md del tuo repository → Commit & Push → Condividi sui canali social.
Citazioni: [1] 1000279995.jpg https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/attachments/images/62532667/8d8c801d-6e5c-4292-b88f-4530423fb53a/1000279995.jpg
| Difetto | Esempio di Bypass | Risultato |
|---|
| Sensibilità alle maiuscole | shell.PHP, shell.pHp | ✅ Esegue |
| Doppia estensione | shell.php.jpg | ✅ Esegue |
| Byte nullo | shell.php%00.jpg | ✅ Esegue |
| PHP non standard | shell.php7, shell.phtml | ✅ Esegue |
| RCE | Esecuzione arbitraria di PHP tramite webshell caricata |
| Escalation dei privilegi | Autenticato come admin → compromissione del server |
| Divulgazione di informazioni | Lettura di file tramite <?php echo file_get_contents('../config.php'); ?> |
| Vettore di attacco | Remoto, autenticato (interfaccia Files Manager) |