
CVE-2025-9345
Tipo de Vulnerabilidade: Path Traversal (Download Arbitrário de Arquivos)
Função Afetada: ajax_downloadfile()
Impacto: Usuários autenticados com privilégios baixos (Subscriber+) podem baixar arquivos arbitrários do servidor, incluindo arquivos de configuração sensíveis, explorando a validação insuficiente do parâmetro flm_file.
Pontuação CVSS v3.1: 6.5 (Médio)
Vetor: AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
O parâmetro flm_file da requisição GET é concatenado diretamente com o caminho do diretório de backup sem sanitização suficiente. A função de sanitização atual Flmbkp_Form_Helper::sanitizeInput_html() não impede sequências como ../, permitindo que um atacante percorra diretórios fora da pasta de backup pretendida.
// 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 um payload de path traversal visando um arquivo sensível.
Divulgação de arquivos sensíveis do sistema.
Exposição de credenciais armazenadas em arquivos como wp-config.php, .env ou logs da aplicação.
Facilita ataques adicionais, incluindo comprometimento total do sistema.
Use realpath() para resolver o caminho absoluto do arquivo solicitado e garantir que ele esteja dentro do diretório de backup.
Rejeite requisições contendo ../, %00 ou outras sequências relacionadas a traversal antes do acesso ao arquivo.
Aplique verificações de capacidade estritas (por exemplo, apenas usuários com manage_options podem baixar backups).
Sanitize e valide o nome do arquivo com base em uma lista de permissões de arquivos permitidos.
Se você não conseguir reproduzir o problema exatamente como descrito no relatório, consulte a seguinte demonstração em vídeo (PoC) para um cenário claro de reprodução: