
إثبات مفهوم قائم على Docker يوضح ثغرة CVE-2025-23320 في خادم الاستدلال NVIDIA Triton، مستغلًا تسريب مفاتيح الذاكرة المشتركة لتحفيز كتابة خارج الحدود عبر حالة سباق بين إلغاء التسجيل والتسجيل.
إثبات CVE-2025-23320
يستنسخ هذا المستودع ثغرة CVE-2025-23320، مما يوضح CWE-209، توليد رسالة خطأ تحتوي على معلومات حساسة (درجة CVSS: 7.5). توجد هذه الثغرة في جميع خوادم استدلال NVIDIA Triton الإصدار 25.06 وما قبله.
يقوم إعداد docker هذا بتشغيل شبكة تحتوي على خادم استدلال NVIDIA Triton وعميل مهاجم. تضمن هذه البيئة أيضًا أن العميل يعمل على لينكس، لذا يمكن تكرار الثغرة على جميع أنظمة التشغيل.
للبناء/التشغيل
docker compose --build-no-cache
إذا كانت هذه هي المرة الأولى للتشغيل، فقد يستغرق ذلك بعض الوقت، حيث يقوم بسحب صورة خادم NVIDIA Triton الإصدار 25.06 من github
ثم:
docker compose up
إثبات المفهوم (POC)
يتم تشغيل سكربت العميل المهاجم تلقائيًا، مما يُخرج رسالة خطأ بالشكل: Failed to increase the shared memory pool size for key 'triton_python_backend_shm_region_8a463f1a-fcd6-4c1b-b4b5-df63f9c512ad' to 54525952 bytes.
بعد الحصول على هذا المفتاح، يمكن للمهاجم تنفيذ العديد من الإجراءات. في تنفيذ الكود الخاص بنا، استخدم المهاجم واجهة برمجة تطبيقات إلغاء التسجيل الخاصة بـ Triton. نظرًا لأن Triton لا يتحقق من هوية من يستدعي هذه الواجهة، فسيتم تنفيذ الوظيفة. إذا استخدم المهاجم لاحقًا وظيفة التسجيل، مما يؤدي بنجاح إلى إحداث حالة سباق (race condition)، فسيؤدي ذلك إلى كتابة خارج الحدود (OOB).