
CVE-2025-9345
취약점 유형: 경로 탐색 (임의 파일 다운로드)
영향 받는 함수: ajax_downloadfile()
영향: 낮은 권한의 인증된 사용자(Subscriber 이상)는 flm_file 매개변수의 검증 부족을 악용하여 민감한 구성 파일을 포함한 서버의 임의 파일을 다운로드할 수 있습니다.
CVSS v3.1 점수: 6.5 (Medium)
Vector: AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
GET 요청의 flm_file 매개변수는 충분한 필터링 없이 백업 디렉터리 경로와 직접 연결됩니다. 현재 필터링 함수인 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 매개변수를 수정하여 민감한 파일을 대상으로 하는 경로 탐색 페이로드를 포함시킵니다.
민감한 시스템 파일 노출.
wp-config.php, .env 또는 애플리케이션 로그와 같은 파일에 저장된 자격 증명 노출.
전체 시스템 장악을 포함한 추가 공격을 용이하게 합니다.
realpath()를 사용하여 요청된 파일의 절대 경로를 확인하고 백업 디렉터리 내에 있는지 확인합니다.
파일 접근 전에 ../, %00 또는 기타 경로 탐색 관련 시퀀스가 포함된 요청을 거부합니다.
엄격한 권한 확인을 적용합니다(예: manage_options 권한이 있는 사용자만 백업을 다운로드할 수 있음).
허용된 파일 목록(화이트리스트)을 기준으로 파일명을 필터링하고 검증합니다.
보고서에 설명된 대로 문제를 정확히 재현할 수 없는 경우, 명확한 재현 시나리오를 위해 다음 동영상 시연(PoC)을 참조하십시오: