
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
يتم دمج المعامل 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 ليتضمن حمولة اجتياز المسار لاستهداف ملف حساس.
الكشف عن ملفات نظام حساسة.
تعريض بيانات الاعتماد المخزنة في ملفات مثل wp-config.php أو .env أو سجلات التطبيق.
تسهيل هجمات إضافية، بما في ذلك اختراق النظام بالكامل.
استخدم realpath() لتحليل المسار المطلق للملف المطلوب والتأكد من أنه داخل دليل النسخ الاحتياطي.
ارفض الطلبات التي تحتوي على ../ أو %00 أو أي تسلسلات أخرى مرتبطة بالاجتياز قبل الوصول إلى الملف.
فرض فحوصات صلاحيات صارمة (على سبيل المثال، فقط المستخدمون الذين لديهم صلاحية manage_options يمكنهم تنزيل النسخ الاحتياطية).
قم بتعقيم اسم الملف والتحقق منه مقابل قائمة بيضاء بالملفات المسموح بها.
إذا لم تتمكن من إعادة إنتاج المشكلة تمامًا كما هو موضح في التقرير، فيُرجى الرجوع إلى الفيديو التوضيحي التالي (PoC) للحصول على سيناريو إعادة إنتاج واضح: