
Análisis técnico y prueba de concepto para CVE-2025-69906, una vulnerabilidad de carga arbitraria de archivos en Monstra CMS 3.0.4 que conduce a ejecución remota de código mediante técnicas de evasión de listas negras.
hazlo un readme.md para pegarlo
Autor: David PS Abraham
Fecha: 5 de febrero de 2026
Severidad: Crítica - Ejecución Remota de Código (CVSS 8.8+)
CWE: 434 (Subida sin restricciones de archivos de tipo peligroso)
El complemento Files Manager de Monstra CMS v3.0.4 (plugins/box/filesmanager/filesmanager.admin.php) implementa validación de extensión de archivos basada en listas negras que almacena los archivos subidos directamente en el directorio accesible vía web /public/files/, permitiendo la ejecución remota de código en configuraciones estándar de Apache/PHP.
Fallo Principal (filesmanager.admin.php ~líneas 150-220):
// VALIDACIÓN DÉBIL DE LISTA NEGRA
$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) {
// ESCRITURA DIRECTA EN LA RAÍZ WEB - Sin saneamiento
$upload_path = BASE_PATH . DS . 'public' . DS . 'files' . DS;
move_uploaded_file($file['tmp_name'], $upload_path . $filename);
// http://target/public/files/shell.PHP se ejecuta!
}
| Impacto | Descripción |
|---|
Monstra CMS <= 3.0.4
Ruta: plugins/box/filesmanager/filesmanager.admin.php
Repositorio: https://github.com/monstra-cms/monstra/tree/dev/plugins/box/filesmanager
2026-02-05: CVE-2025-69906 asignado por MITRE
2026-02-05: Divulgación pública
1. Deshabilitar el complemento Files Manager
2. Usar lista blanca de extensiones PERMITIDAS (image/png, image/jpeg)
3. Renombrar subidas: uniqid() + .jpg
4. Almacenar fuera de la raíz web
5. Migrar a un CMS mantenido
Descubierto por: David PS Abraham (Investigador de Ciberseguridad)
Divulgación responsable siguiendo la asignación de CVE. No se realizó explotación en entornos activos.
Proyecto sin mantenimiento desde 2018 según aviso del repositorio.
[1]
Copia todo este contenido → Pégalo en tu README.md de tu repositorio → Haz commit & push → Comparte en redes sociales.
| Fallo | Ejemplo de Bypass | Resultado |
|---|
| Sensibilidad a mayúsculas | shell.PHP, shell.pHp | ✅ Ejecuta |
| Doble extensión | shell.php.jpg | ✅ Ejecuta |
| Byte nulo | shell.php%00.jpg | ✅ Ejecuta |
| PHP no estándar | shell.php7, shell.phtml | ✅ Ejecuta |
| RCE | Ejecución arbitraria de PHP mediante webshell subida |
| Escalada de Privilegios | Autenticado como admin → compromiso del servidor |
| Divulgación de Información | Lectura de archivos mediante <?php echo file_get_contents('../config.php'); ?> |
| Vector de Ataque | Remoto, autenticado (interfaz de Files Manager) |