
CVE-2025-9345
Tipo de Vulnerabilidad: Path Traversal (Descarga Arbitraria de Archivos)
Función Afectada: ajax_downloadfile()
Impacto: Usuarios autenticados con privilegios bajos (Subscriber+) pueden descargar archivos arbitrarios del servidor, incluidos archivos de configuración sensibles, explotando la validación insuficiente del parámetro flm_file.
Puntuación CVSS v3.1: 6.5 (Medio)
Vector: AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
El parámetro flm_file de la solicitud GET se concatena directamente con la ruta del directorio de respaldo sin una sanitización suficiente. La función de sanitización actual Flmbkp_Form_Helper::sanitizeInput_html() no evita secuencias como ../, lo que permite a un atacante recorrer directorios fuera de la carpeta de respaldo prevista.
// modules\filemanager\controllers\backups.php
public function ajax_downloadfile()
{
check_ajax_referer('flmbkp_ajax_nonce', 'flmbkp_security');
@set_time_limit(900);
$flm_file = (isset($_GET['flm_file'])) ? Flmbkp_Form_Helper::sanitizeInput_html($_GET['flm_file']) : '';
$backup_directory=Flmbkp_Form_Helper::backup_directory();
$fullpath = $backup_directory.'/'.$flm_file;
header("Content-Length: ".filesize($fullpath));
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"".basename($fullpath)."\";");
readfile($fullpath);
exit;
}




flm_file para incluir una carga útil de path traversal dirigida a un archivo sensible.
Revelación de archivos sensibles del sistema.
Exposición de credenciales almacenadas en archivos como wp-config.php, .env o registros de la aplicación.
Facilita ataques adicionales, incluyendo el compromiso total del sistema.
Use realpath() para resolver la ruta absoluta del archivo solicitado y asegurarse de que esté dentro del directorio de respaldo.
Rechace las solicitudes que contengan ../, %00 u otras secuencias relacionadas con traversal antes del acceso al archivo.
Aplique verificaciones estrictas de capacidades (por ejemplo, solo los usuarios con manage_options pueden descargar respaldos).
Sanitice y valide el nombre del archivo contra una lista blanca de archivos permitidos.
Si no puede reproducir el problema exactamente como se describe en el informe, consulte la siguiente demostración en video (PoC) para un escenario de reproducción claro: