اكتشف فريق Wiz Research سلسلة من نقاط الضعف الحرجة في Triton Inference Server من NVIDIA، وهو نظام أساسي مفتوح المصدر شائع لتشغيل نماذج الذكاء الاصطناعي على نطاق واسع. عند ربط هذه العيوب معًا، من المحتمل أن تسمح لمهاجم بعيد غير مصادق عليه بالتحكم الكامل في الخادم، وتحقيق تنفيذ التعليمات البرمجية عن بُعد (RCE).

ينشأ مسار الهجوم هذا في الواجهة الخلفية لـ Python للخادم ويبدأ بتسرب بسيط للمعلومات والذي يتصاعد بذكاء إلى تسوية كاملة للنظام. يشكل هذا خطرًا جسيمًا على المؤسسات التي تستخدم Triton for AI/ML، حيث يمكن أن يؤدي الهجوم الناجح إلى سرقة نماذج الذكاء الاصطناعي القيمة، والكشف عن البيانات الحساسة، والتلاعب باستجابات نموذج الذكاء الاصطناعي وتوفير موطئ قدم للمهاجمين للتحرك بشكل أعمق في الشبكة.

كشفت Wiz Research بشكل مسؤول عن هذه النتائج لـ NVIDIA، وتم إصدار التصحيح. نود أن نشكر فريق أمان NVIDIA على تعاونهم الممتاز واستجابتهم السريعة. قامت NVIDIA بتعيين المعرفات التالية لسلسلة الثغرات الأمنية هذه: CVE-2025-23319, CVE-2025-23320، و CVE-2025-23334. نوصي بشدة جميع مستخدمي Triton Inference Server بالتحديث إلى الإصدار الأحدث. يقدم هذا المنشور نظرة عامة رفيعة المستوى على نقاط الضعف الجديدة هذه وتأثيرها المحتمل.

العمل المرفق هو الأحدث في سلسلة من ثغرات NVIDIA التي كشفنا عنها، بما في ذلك اثنتين من هروب الحاويات: CVE-2025-23266 و كفي 2024-0132.

التخفيف

  1. التحديث فورًا: يتمثل التخفيف الأساسي في ترقية كل من NVIDIA Triton Inference Server وواجهة Python الخلفية إلى الإصدار 25.07 كما هو موصى به في نشرة الأمن NVIDIA.

يمكن لعملاء Wiz استخدام ما يلي لاكتشاف المثيلات الضعيفة في البيئة السحابية الخاصة بهم:

الأعمال الداخلية لتريتون

لفهم الثغرة الأمنية، من المفيد معرفة القليل عن بنية Triton. تم تصميم Triton ليكون خادمًا استدلاليًا عالميًا، قادرًا على نشر النماذج من أي إطار عمل رئيسي للذكاء الاصطناعي (PyTorch، وTensorFlow، وما إلى ذلك). ويحقق هذه المرونة من خلال نظام وحدات من الواجهات الخلفية، حيث تكون كل واجهة خلفية مسؤولة عن تنفيذ النماذج من إطار عمل محدد. عند وصول طلب استدلال لنموذج معين، يقوم Triton تلقائيًا بتوجيه الطلب إلى الواجهة الخلفية اللازمة للتنفيذ.

ركز بحثنا على الواجهة الخلفية لـ Python، حيث إنها واحدة من الواجهات الخلفية الأكثر شهرة وتنوعًا في نظام Triton البيئي. فهو لا يخدم النماذج المكتوبة مباشرة بلغة بايثون فحسب، بل يعمل أيضًا بمثابة تبعية للعديد من الواجهات الخلفية الأخرى. وهذا يعني أنه حتى النماذج التي تم تكوينها لتعمل ضمن واجهة خلفية مختلفة قد تظل تستخدم واجهة Python الخلفية داخليًا لمراحل أخرى من عملية الاستدلال. ونظرًا لاستخدامه على نطاق واسع، قررنا تركيز أبحاثنا الأمنية على هذا المكون.

بايثون الخلفية الداخلية

يتم تنفيذ المنطق الأساسي لواجهة Triton Python الخلفية في لغة C++ وهو مصمم للتعامل مع طلبات الاستدلال لنماذج Python. عند وصول طلب، يتصل مكون C++ هذا بعملية “كعب روتين” منفصلة، ​​تكون مسؤولة عن تحميل كود النموذج وتنفيذه. لتسهيل الاتصال بين منطق C++ الخاص بها وهذه العملية الأساسية، تعتمد الواجهة الخلفية على آلية متطورة للاتصال بين العمليات (IPC) لكل من الاستدلال والعمليات الداخلية. تم بناء IPC هذا على الذاكرة المشتركة المسماة (/dev/shm)، مما يؤدي إلى إنشاء منطقة ذاكرة يمكن الوصول إليها عبر مسار نظام فريد. يسمح هذا التصميم بتبادل البيانات بسرعة عالية، ولكنه يقدم أيضًا تبعية حرجة: أمان وخصوصية أسماء الذاكرة المشتركة.

نظرة عامة على نقاط الضعف

الخطوة 1: الكشف عن معلومات اسم الذاكرة المشتركة للواجهة الخلفية

أثناء تدقيقنا للواجهة الخلفية لـ Python، اكتشفنا وجود خلل في آلية معالجة الأخطاء الخاصة بها. من خلال إرسال طلب كبير عن بعد، يمكن للمهاجم تشغيل استثناء يؤدي إلى الكشف عن معلومات مهمة. تتضمن رسالة الخطأ الناتجة، التي تم إرجاعها إلى المستخدم، بشكل غير صحيح الاسم الكامل والفريد لمنطقة الذاكرة المشتركة الداخلية IPC الخاصة بالواجهة الخلفية.

تظهر رسالة الخطأ التي تم إرجاعها كما يلي: {"error":"Failed to increase the shared memory pool size for key 'triton_python_backend_shm_region_4f50c226-b3d0-46e8-ac59-d4690b28b859'..."}

يعد الكشف عن هذا الاسم الخطوة الحاسمة الأولى في سلسلة الاستغلال، لأنه يكشف عن مكون داخلي يجب أن يظل خاصًا.

الخطوة 2: إساءة استخدام واجهة برمجة تطبيقات الذاكرة المشتركة للقراءة/الكتابة التعسفية

يقدم Triton ميزة الذاكرة المشتركة التي تواجه المستخدم من أجل الأداء. يمكن للعميل استخدام هذه الميزة لجعل Triton يقرأ موترات الإدخال من منطقة الذاكرة المشتركة الموجودة مسبقًا ويكتب موترات الإخراج إليها. تتجنب هذه العملية النقل المكلف لكميات كبيرة من البيانات عبر الشبكة، وهي أداة موثقة وقوية لتحسين أعباء عمل الاستدلال.

/dev/shm/wiz-legit-shared-memory

مثال لموقع منطقة الذاكرة المشتركة التي أنشأها المستخدم

من خلال الاسم المسرب للذاكرة المشتركة IPC الداخلية لواجهة Python الخلفية، يمكن للمهاجم قلب واجهة برمجة التطبيقات العامة هذه ضد نفسها. تكمن الثغرة الأمنية في عدم التحقق من صحة واجهة برمجة التطبيقات (API)؛ ولا يتحقق مما إذا كان مفتاح الذاكرة المشتركة المقدم يتوافق مع منطقة شرعية يملكها المستخدم أو منطقة داخلية خاصة.

/dev/shm/triton_python_backend_shm_region_4f50c226-b3d0-46e8-ac59-d4690b28b859

إجبار Triton على استخدام الذاكرة الداخلية المشتركة لواجهة Python الخلفية من خلال تزويدها بالمفتاح triton_python_backend_shm_region_4f50c226-b3d0-46e8-ac59-d4690b28b859

وبالتالي يمكن للمهاجم الاتصال بنقطة نهاية التسجيل باستخدام المفتاح الداخلي المسرب. بمجرد أن يقبلها الخادم، يمكنه صياغة طلبات الاستدلال اللاحقة التي تستخدم هذه المنطقة للإدخال أو الإخراج. يوفر هذا للمهاجم عناصر أولية قوية للقراءة والكتابة في الذاكرة الخاصة لواجهة Python الخلفية، والتي تحتوي أيضًا على بيانات داخلية وهياكل تحكم مرتبطة بآلية IPC الخاصة بها، ويتم تنفيذها جميعها من خلال استدعاءات واجهة برمجة التطبيقات (API) القياسية والشرعية.

الخطوة 3: طرق تنفيذ التعليمات البرمجية عن بعد

نظرًا لأن المهاجم يمكنه الآن تغيير الذاكرة المشتركة لواجهة Python الخلفية، فيمكنه التسبب في سلوك غير متوقع في الخادم. ويمكن الاستفادة من هذه الإمكانية للحصول على السيطرة الكاملة على الخادم. هناك طرق استغلال متعددة قد يستخدمها المهاجم لتحقيق ذلك:

  • تتضمن إحدى الطرق إتلاف هياكل البيانات الموجودة داخل منطقة الذاكرة المشتركة للواجهة الخلفية. علاوة على ذلك، يمكن للمهاجم استهداف هياكل محددة تحتوي على مؤشرات (على سبيل المثال، MemoryShm, SendMessageBase)، والذي يسمح بالوصول إلى الذاكرة خارج الحدود بما يتجاوز الذاكرة المشتركة للواجهة الخلفية.

  • إن صياغة رسائل IPC الضارة ومعالجة قائمة انتظار رسائل IPC لمعالجتها يفتح سطح هجوم جديدًا للاستغلال، بدءًا من تلف الذاكرة الأصلية إلى عمليات الاستغلال المنطقية.

في الوقت الحالي، لن ننشر المزيد من التفاصيل الفنية فيما يتعلق باستغلال هذه الثغرة الأمنية.

تأثير

يمكن أن تسمح السلسلة لمهاجم بعيد وغير مصادق عليه بالاستيلاء على خادم NVIDIA Triton Inference Server. وهذا يمكن أن يؤدي إلى العديد من النتائج الحاسمة، بما في ذلك:

  • سرقة النموذج: سرقة نماذج الذكاء الاصطناعي الخاصة والمكلفة.

  • خرق البيانات: اعتراض البيانات الحساسة التي تتم معالجتها بواسطة النماذج، مثل معلومات المستخدم أو البيانات المالية.

  • التلاعب بالاستجابة: معالجة مخرجات نموذج الذكاء الاصطناعي لإنتاج استجابات غير صحيحة أو متحيزة أو ضارة.

  • التمحور: استخدام الخادم المخترق كنقطة انطلاق لمهاجمة الأنظمة الأخرى داخل شبكة المؤسسة.

خاتمة

يوضح هذا البحث كيف يمكن ربط سلسلة من العيوب البسيطة معًا لإنشاء برمجية استغلال كبيرة. كانت رسالة خطأ مطولة في مكون واحد، وهي ميزة يمكن إساءة استخدامها في الخادم الرئيسي، هي كل ما يتطلبه الأمر لإنشاء مسار لتسوية محتملة للنظام. مع قيام الشركات بنشر الذكاء الاصطناعي والتعلم الآلي على نطاق أوسع، فإن تأمين البنية التحتية الأساسية يعد أمرًا بالغ الأهمية. يسلط هذا الاكتشاف الضوء على أهمية الدفاع المتعمق، حيث يتم أخذ الأمان في الاعتبار في كل طبقة من التطبيق.

الجدول الزمني للإفصاح المسؤول

  • 15 مايو 2025: أبلغت Wiz Research عن سلسلة الثغرات الأمنية إلى NVIDIA.

  • 16 مايو 2025: أقرت NVIDIA بالتقرير.

  • 4 أغسطس 2025: نشرت NVIDIA نشرة الأمان والتصحيحات ورموز التهديدات الشائعة المعينة: CVE-2025-23319, CVE-2025-23320، و CVE-2025-23334.

  • 4 أغسطس 2025: تنشر Wiz Research منشور المدونة هذا.

ابق على اتصال!

أهلاً! نحن رونين شوستين (@ronenshh)، ونير أوهفيلد (@nirohfeld)، وساغي تساديك (@sagitz_)، وهيلاي بن ساسون (@hillai)، وأندريس ريانشو (@andresriancho)، ويوفال أفراهامي (@yuvalavra) من فريق أبحاث Wiz (@wiz_io). نحن مجموعة من المتسللين ذوي القبعة البيضاء المخضرمين بهدف واحد: جعل السحابة مكانًا أكثر أمانًا للجميع. نحن نركز بشكل أساسي على العثور على نواقل هجوم جديدة في السحابة والكشف عن مشكلات العزل لدى بائعي السحابة ومقدمي الخدمات. نحن نحب أن نسمع منك! لا تتردد في الاتصال بنا على X (Twitter) أو عبر البريد الإلكتروني: Research@wiz.io.

شاهد المزيد من Wiz Research

شاركها.
اترك تعليقاً