
CVE-2025-9345
Тип уязвимости: Path Traversal (произвольное скачивание файлов)
Затронутая функция: ajax_downloadfile()
Воздействие: Аутентифицированные пользователи с низкими привилегиями (Subscriber и выше) могут скачивать произвольные файлы с сервера, включая конфиденциальные конфигурационные файлы, используя недостаточную проверку параметра flm_file.
Оценка CVSS v3.1: 6.5 (Medium)
Вектор: AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Параметр flm_file из GET-запроса напрямую конкатенируется с путём к каталогу резервных копий без достаточной очистки. Текущая функция очистки Flmbkp_Form_Helper::sanitizeInput_html() не предотвращает последовательности вида ../, что позволяет атакующему выйти за пределы целевого каталога резервных копий.
// 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, включив в него payload для обхода пути, чтобы нацелиться на конфиденциальный файл.
Раскрытие конфиденциальных системных файлов.
Раскрытие учётных данных, хранящихся в таких файлах, как wp-config.php, .env, или журналах приложений.
Способствует дальнейшим атакам, вплоть до полной компрометации системы.
Используйте realpath() для получения абсолютного пути к запрашиваемому файлу и убедитесь, что он находится внутри каталога резервных копий.
Отклоняйте запросы, содержащие ../, %00 или другие последовательности обхода пути, до доступа к файлу.
Обеспечьте строгие проверки прав (например, только пользователи с manage_options могут скачивать резервные копии).
Очищайте и проверяйте имя файла по белому списку разрешённых файлов.
Если вам не удаётся воспроизвести проблему точно так, как описано в отчёте, обратитесь к следующей видеодемонстрации (PoC) для наглядного сценария воспроизведения: