
تحليل تقني مفصّل لـ CVE-2024-5452، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد في PyTorch Lightning عبر تلويث خاصية delta في DeepDiff، مع إثبات المفهوم وإرشادات التخفيف.
RCE (Remote Code Execution، تنفيذ التعليمات البرمجية عن بُعد) هي ثغرة تسمح للمهاجم بتنفيذ تعليمات برمجية عشوائية داخل النظام أو التطبيق عن بُعد، وهي مطابقة لـ CWE-94: Improper Control of Generation of Code ('Code Injection').
PyTorch Lightning هي مكتبة تساعد على إدارة تدريب نماذج التعلم العميق القائمة على PyTorch بسهولة، وDeepDiff هي مكتبة تقارن بين كائنين من Python لتحليل الاختلافات.
CVE-2024-5452 هي ثغرة تحدث عند استخدام DeepDiff وLightning في وظائف تطبيق الويب المتعلقة بأوزان نماذج الذكاء الاصطناعي في Lightning، وتؤدي إلى RCE أثناء إلغاء التسلسل (Deserialization) من خلال التحقق الضعيف من الترويسات في DeepDiff وتلويث خصائص الدلتا (Delta).
من خلال هذا، سنستعرض مسار الكود الذي يؤدي إلى ثغرة تسمح للمهاجم بحقن كائنات عشوائية أو تنفيذ تعليمات برمجية عن بُعد (RCE)، وسنبحث عن الإجراءات المضادة لذلك.
[الشكل 1] POC - هجوم نقطة النهاية (Endpoint)
[الشكل 2] POC - حقن الثغرة / محتوى إعداد التلويث الكامل
[الشكل 3] lightning/api/core/api.py / جزء منطق فحص الترويسات الضعيف
[الشكل 4] lightning/api/core/app.py / قسم الإعداد
[الشكل 5] lightning/api/core/app.py / قسم حفظ الإعداد