
CVE-2025-9345
Type de vulnérabilité : Traversée de chemin (Téléchargement arbitraire de fichiers)
Fonction affectée : ajax_downloadfile()
Impact : Les utilisateurs authentifiés avec des privilèges faibles (Subscriber+) peuvent télécharger des fichiers arbitraires depuis le serveur, y compris des fichiers de configuration sensibles, en exploitant une validation insuffisante du paramètre flm_file.
Score CVSS v3.1 : 6.5 (Moyen)
Vecteur : AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Le paramètre flm_file de la requête GET est concaténé directement avec le chemin du répertoire de sauvegarde sans assainissement suffisant. La fonction d'assainissement actuelle Flmbkp_Form_Helper::sanitizeInput_html() n'empêche pas les séquences comme ../, permettant à un attaquant de traverser les répertoires en dehors du dossier de sauvegarde prévu.
// 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 pour inclure une charge utile de traversée de chemin afin de cibler un fichier sensible.
Divulgation de fichiers système sensibles.
Exposition d'identifiants stockés dans des fichiers tels que wp-config.php, .env, ou les journaux d'application.
Facilite d'autres attaques, y compris le compromis total du système.
Utilisez realpath() pour résoudre le chemin absolu du fichier demandé et assurez-vous qu'il se trouve dans le répertoire de sauvegarde.
Rejetez les requêtes contenant ../, %00 ou d'autres séquences liées à la traversée avant l'accès au fichier.
Appliquez des contrôles de capacité stricts (par exemple, seuls les utilisateurs avec manage_options peuvent télécharger des sauvegardes).
Assainissez et validez le nom de fichier par rapport à une liste blanche de fichiers autorisés.
Si vous ne parvenez pas à reproduire le problème exactement comme décrit dans le rapport, veuillez vous référer à la démonstration vidéo suivante (PoC) pour un scénario de reproduction clair :