CVE-2025-63307 – ثغرة تخزينية للبرمجة النصية عبر المواقع (XSS) مع مصادقة في laravel-file-manager الإصدار 3.3.1
🧭 نظرة عامة
ثغرة تخزينية للبرمجة النصية عبر المواقع (XSS) مع مصادقة في laravel-file-manager الإصدار 3.3.1 والإصدارات الأدنى تسمح للمهاجمين الذين لديهم حق الوصول إلى واجهة مدير الملفات بحقن ونصوص JavaScript ضارة وجعلها مستمرة في الملفات التي تم رفعها أو إنشاؤها.
عن طريق رفع ملف .html أو .svg مصمم خصيصاً يحتوي على JavaScript ضار، أو عن طريق إنشاء وتحرير مثل هذا الملف مباشرة داخل مدير الملفات، يمكن للمهاجمين تحقيق XSS تخزيني يتم تنفيذه عندما يقوم أي مستخدم آخر موثّق أو مسؤول بعرض الملف عبر واجهة الويب.
🧱 المكون المتأثر
- المشروع:
laravel-file-manager
- المكون: وظيفة رفع الملفات وإنشائها وعرضها (مثل FileManagerController.php)
- الإصدار المتأثر: v3.3.1 والإصدارات الأقل
🎯 ناقلات الهجوم
- تسجيل الدخول بحساب لديه صلاحية رفع أو إنشاء أو إعادة تسمية الملفات عبر واجهة مدير الملفات.
- رفع أو إنشاء ملف بامتداد .svg أو .html يحتوي على JavaScript ضار.
- يقوم التطبيق بتخزين هذا الملف دون التحقق من محتواه أو تعقيم النصوص البرمجية المضمنة.
- عندما يقوم مستخدم آخر (مثل مسؤول أو مشرف مستودع) بعرض الملف أو معاينته في متصفحه، يتم تنفيذ JavaScript الضار في سياق نطاق التطبيق.
- يمكن للنص البرمجي بعد ذلك تنفيذ إجراءات مثل اختطاف الجلسة، أو هجمات تزوير الطلبات عبر المواقع (CSRF)، أو سرقة البيانات الحساسة من متصفح الضحية.
💥 التأثير
- XSS تخزيني: تنفيذ JavaScript دائم داخل أصل التطبيق.
- اختطاف الجلسة والاستيلاء على الحساب: يمكن للمهاجمين سرقة الكوكيز أو تنفيذ إجراءات باسم الضحية.
- التصيد / إخفاء واجهة المستخدم: يمكن للنصوص المحقونة تزييف عناصر واجهة المستخدم أو إعادة توجيه المستخدمين إلى مواقع ضارة.
- كشف البيانات الحساسة: الوصول إلى المعلومات داخل التطبيق المتاحة لجلسة الضحية.
CVSS v3
النتيجة الأساسية: 8.1
المتجه: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N
الشدة: High
🛡️ الإصلاح الموصى به
- تنفيذ التحقق الصارم من نوع المحتوى (Content-Type) على الخادم وتصفية الملفات المرفوعة.
- منع أو تعقيم الرفعات ذات الامتدادات .html، .svg أو أي تنسيقات أخرى قادرة على احتواء محتوى نشط.
- خدمة الملفات التي رفعها المستخدم مع رأس
Content-Disposition: attachment أو من نطاق/مجال فرعي منفصل غير قابل للتنفيذ.
- تطبيق ترميز المخرجات وتعقيمها قبل عرض المحتوى الذي يتحكم به المستخدم في المتصفح.
🙏 الإسناد
تم الاكتشاف والإبلاغ من قبل: Chayawat Jeamprasertboon، Thanakorn Boontem، Sahapon Kanajanothai و Theethat Thamwasin