
CVE-2025-9345
脆弱性タイプ: パストラバーサル(任意のファイルダウンロード)
影響を受ける関数: ajax_downloadfile()
影響: 低権限の認証済みユーザー(Subscriber 以上)は、flm_file パラメータの検証不足を悪用して、機密設定ファイルを含むサーバー上の任意のファイルをダウンロードできます。
CVSS v3.1 スコア: 6.5 (中)
ベクター: 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)を参照してください: