
قراءة ملفات تعسفية بدون مصادقة عبر المسار المطلق
قراءة ملفات تعسفية دون مصادقة عبر مسار مطلق
بينما تُستخدم طريقة Path.resolve() للحماية من اجتياز المسار، اكتشفت أن استخدام المسار المطلق نجح في قراءة الملفات الداخلية. كما أن نقطة النهاية لا تتطلب مصادقة، ما يعني أن أي شخص يمكنه قراءة ملفات المنظمة بالكامل ونظام الملفات من أي مكان يوجد فيه جذر التخزين: files.store.root = /file-store/ كما هو مكوَّن في application-dev.properties، مما يتيح وصولًا غير مصرح به إلى ملفات داخلية حساسة.
تستخدم طريقة storageService.loadAsResource() الأمر Path.resolve() دون التأكد أولاً من أن اسم الإدخال هو مسار نسبي وأن المسار المُحلَّل يظل داخل جذر تخزين الملفات المقصود؛ وبالتالي فإن تقديم مسار مطلق كـ fileName سيؤدي مباشرةً إلى الوصول إلى ذلك الملف التعسفي.
أيضًا، نقطة النهاية /api/v1/files/{fileName} معرَّضة دون أي فحوصات مصادقة أو تفويض، مما يسمح لأي مستخدم غير مصادق عليه بالوصول إلى الملفات.
الاستخدام:
python3 CVE-2025-46822.py http://victim.com /etc/passwd
الروابط: