
Autor: David PS Abraham
Data: 5 de fevereiro de 2026
Severidade: Crítica - Execução Remota de Código (CVSS 8.8+)
CWE: 434 (Upload Irrestrito de Arquivo com Tipo Perigoso)
O plugin Files Manager do Monstra CMS v3.0.4 (plugins/box/filesmanager/filesmanager.admin.php) implementa validação de extensão de arquivo baseada em lista negra (blacklist) que armazena os arquivos enviados diretamente no diretório /public/files/ acessível pela web, permitindo execução remota de código em configurações padrão de Apache/PHP.
Falha Principal (filesmanager.admin.php ~linhas 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!
}
| Impacto | Descrição |
|---|
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
Descoberto por: David PS Abraham (Pesquisador de Segurança Cibernética)
Divulgação responsável após a atribuição do CVE. Nenhuma exploração ao vivo foi realizada.
Projeto sem manutenção desde 2018, conforme aviso no repositório.
[1]
Copie todo este conteúdo → Cole no README.md do seu repositório → Faça commit e push → Compartilhe nos canais sociais.
Citações: [1] 1000279995.jpg https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/attachments/images/62532667/8d8c801d-6e5c-4292-b88f-4530423fb53a/1000279995.jpg
| Falha | Exemplo de Bypass | Resultado |
|---|
| Sensibilidade a maiúsculas/minúsculas | shell.PHP, shell.pHp | ✅ Executa |
| Extensão dupla | shell.php.jpg | ✅ Executa |
| Byte nulo | shell.php%00.jpg | ✅ Executa |
| PHP não padrão | shell.php7, shell.phtml | ✅ Executa |
| RCE | Execução arbitrária de PHP por meio de webshell enviado |
| Escalação de Privilégios | Autenticado como admin → comprometimento do servidor |
| Divulgação de Informações | Leitura de arquivos via <?php echo file_get_contents('../config.php'); ?> |
| Vetor de Ataque | Remoto, autenticado (interface do Files Manager) |