
توجد ثغرة تزوير الطلبات من جانب الخادم (Server-Side Request Forgery - SSRF) في VINADES JSC NukeViet CMS v4.5.07 ضمن ميزة الرفع عن بُعد في لوحة الإدارة. تتيح هذه المشكلة لمسؤول مُصادَق عليه إطلاق طلبات HTTP من جانب الخادم إلى عناوين URL عشوائية عبر توفير عنوان URL لملف بعيد مُعدّ خصيصًا أثناء رفع الملفات.
قد تسمح هذه الثغرة للمهاجمين بالتفاعل مع خدمات الشبكة الداخلية، وفحص الموارد الداخلية، أو الوصول إلى نقاط نهاية مقيدة لا يمكن الوصول إليها مباشرة من الخارج.
توجد الثغرة في المكونات التالية:
admin/upload/upload.php
vendor/vinades/nukeviet/Files/Upload.php
تتضمن الدوال المتأثرة:
save_urlfile()
check_url()
تعالج هذه الدوال عنوان URL لملف بعيد يوفره المستخدم (fileurl) دون تحقق كافٍ أو قيود على الطلبات الصادرة.
تتيح ميزة الرفع عن بُعد للمسؤولين رفع الملفات باستخدام مصدر URL. عندما يتم توفير عنوان URL مُعدّ خصيصًا عبر معامل fileurl، يقوم التطبيق بتنفيذ طلب من جانب الخادم إلى الوجهة المقدمة.
نظرًا لعدم تنفيذ تحقق كافٍ، يمكن لمهاجم يمتلك صلاحيات إدارية استغلال هذا السلوك لإجبار خادم التطبيق على إطلاق طلبات HTTP إلى موارد داخلية أو خارجية عشوائية.
بالإضافة إلى ذلك، يتم تتبع سلوك إعادة التوجيه (redirects)، مما يزيد من خطر الوصول إلى الموارد الداخلية واستطلاع الشبكة.
يقدّم مسؤول مُصادَق عليه عنوان URL مُعدًّا خصيصًا إلى نقطة نهاية الرفع عن بُعد.
مثال على سيناريو الهجوم:
أمثلة على الأهداف:
http://127.0.0.1
http://localhost
http://169.254.169.254
http://192.168.1.1
http://internal-service:8080
قد يتيح ذلك:
مثال على طلب مُعدّ خصيصًا:
POST /admin/index.php?language=en&nv=upload&op=upload HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
Cookie: admin_session=SESSION
fileurl=http://127.0.0.1:8080
يحاول الخادم جلب عنوان URL المقدم، مما يؤدي إلى إطلاق طلب من جانب الخادم إلى مورد داخلي.
قد يسمح الاستغلال الناجح للمهاجم بـ:
تنشأ المشكلة بسبب:
يجب على VINADES JSC تنفيذ إجراءات التخفيف التالية:
127.0.0.0/8
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
169.254.169.254
localhost
http
https
تعطيل أو تقييد عمليات إعادة التوجيه.
تنفيذ التحقق من أسماء المضيفين وDNS لمنع تقنيات تجاوز SSRF.
استخدام نهج القائمة المسموح بها للنطاقات البعيدة الموثوقة حيثما أمكن.
Pavan V