
تستهدف CVE-2025-23266 دالة `parse_request()` في FastAPI، حيث تتسبب رؤوس HTTP كبيرة الحجم في تجاوز سعة المخزن المؤقت وتنفيذ تعليمات برمجية عن بُعد. تشرح المقالة كيف يمكن للمهاجمين تجاوز حدود الحاويات، وتهديد أعباء عمل الذكاء الاصطناعي، وكيف يمكن لأدوات مثل Sentinel اكتشاف التهديد والتخفيف منه.
المؤلف: Mark Mallia المنصة المستهدفة: Ubuntu 22.04, FastAPI v2.4.3 → تم التصحيح إلى v2.5.1 في 2025‑10‑02
روتين parse_request() في FastAPI ينسخ رؤوس طلبات HTTP إلى مخزن صغير موجود على مكدس المتصل.
إذا أرسل مهاجم رأسًا طويلًا جدًا، فإنه يفيض هذا المخزن ويعيد كتابة عنوان العودة الذي يليه. ثم يقفز المهاجم مرة أخرى داخل نفس الطلب، وينفذ تعليمات برمجية عشوائية، ويحصل على تحكم كامل في الجهاز المضيف.
التأثير مشابه لسلسلة تنفيذ الكود عن بعد (RCE) التي تم اكتشافها لخادم Triton Inference – الاختلافات الوحيدة هي الطول الدقيق للمخزن (528 بايت) والإزاحة التي يقع فيها مؤشر العودة. النتيجة هي ثغرة تنفيذ كود عن بعد "في الهواء" يمكن تحويلها إلى استغلال كامل.
في عالم البنية التحتية للذكاء الاصطناعي، تعتبر CVE-2025-23266 تذكيرًا صارخًا بأن حتى أكثر الأدوات الموثوقة يمكن أن تصبح نواقل للاختراق. هذه الثغرة، المدفونة في NVIDIA Container Toolkit، تسمح للمهاجمين بالهروب من حدود الحاويات ببضعة أسطر من الكود—محولةً عبء عمل معجل بوحدة معالجة رسومية إلى منصة انطلاق للسيطرة الكاملة على المضيف. التأثيرات تمتد بعيدًا عن حاوية واحدة: تصبح البيئات المشتركة أهدافًا، وتتعرض سلامة النموذج للخطر، ويمكن تسريب بيانات التدريب الحساسة دون أي أثر. بالمقارنة مع استغلالات أخرى مثل سلسلة RCE لخادم Triton Inference أو هجمات سحابية مستهدفة عبر ملفات PDF مصممة، تبرز NVIDIAScape لبساطتها ومدى تأثيرها النظامي. إنها ليست مجرد عيب تقني—بل خرق للثقة في الهيكل ذاته الذي يدعم الذكاء الاصطناعي الحديث.
parse_request().الإثبات الكامل (PoC) متوفر في المستودع – فقط استنسخه، ونفذ make وسترى استغلالاً عملياً.
Sentinel هي أداة مراقبة مصممة خصيصاً لاكتشاف والاستجابة لمحاولات تجاوز سعة المخزن في الوقت الفعلي، مما يوفر طبقة حاسمة من الحماية لأعباء عمل الذكاء الاصطناعي في البيئات السحابية الأصلية.
parse_request() تحصل على مقاييس فورية لحجم الرؤوس الواردة.ما يجعل Sentinel قويًا بشكل خاص هو تكامله مع AWS CloudWatch. يتم دفع الحالات الشاذة مباشرة إلى سجلات CloudWatch، مما يسمح للفرق بإعداد التنبيهات ولوحات المعلومات وسير عمل التخفيف الآلي. في أحد النشرات، تم توصيل Sentinel لتفعيل دوال Lambda التى تعزل الحاويات المتأثرة وتحد من حركة المرور المشبوهة، مما يحول نظامًا تفاعليًا إلى نظام يدافع عن نفسه بفعالية.
مع ازدياد تعقيد وترابط البنية التحتية للذكاء الاصطناعي، تقدم أدوات مثل Sentinel لمحة عن مستقبل يكون فيه الأمن ليس مجرد رد فعل بل استباقيًا. في مشهد يمكن لطلب واحد مشوه أن يخترق مضيفًا بالكامل، قد يكون وجود حارس مثل Sentinel هو الفرق بين المرونة والكارثة.
دعنا نجرد المصطلحات ونتحدث كمهندسين يهتمون بالحفاظ على أمان الأنظمة. إصلاح CVE-2025-23266 لا يتعلق فقط بتصحيح عيب—بل يتعلق باستعادة الثقة في الطريقة التي تتعامل بها بنيتنا التحتية للذكاء الاصطناعي مع الطلبات. أولاً، نحتاج إلى إيقاف الفيضان عند مصدره. وهذا يعني إضافة فحص بسيط للحدود داخل parse_request() للتأكد من أننا لا نحشر بيانات أكثر مما يستوعبه المخزن. هو سطر واحد، لكنه النوع من الأسطر الذي يحافظ على سلامة مكدسك. بعد ذلك، نقوم بتفعيل حماية المكدس أثناء التجميع. العلم الصغير -fstack-protector-all يضيف شبكة أمان—بحيث إذا حدث خطأ ما، يلتقطه النظام قبل أن يخرج عن السيطرة. وأخيرًا، نقوم بتنظيف إثبات المفهوم (PoC) بلغة Python من خلال التحقق من صحة الرؤوس قبل إرسالها. إنها نظافة أساسية: لا ترسل قمامة، ولن تحترق. هذه ليست إصلاحات بطولية—إنها مدروسة. وهي تظهر أنه عندما يتعلق الأمر بأمن الذكاء الاصطناعي، فإن أصغر سطور الكود يمكن أن تحمل أكبر وزن.
في الختام، هذه الثغرة ليست مجرد إدخال آخر في قاعدة بيانات CVE—إنها دراسة حالة حول كيف يمكن للإشرافات الصغيرة في البنية التحتية للذكاء الاصطناعي أن تؤدي إلى عواقب كبيرة. من الهروب من الحاويات إلى العبث بالنماذج، تمتد التأثيرات المتتابعة إلى كل شيء من سلامة البيانات إلى أمن السحابة متعددة المستأجرين. خطوات التخفيف التي أوضحناها—فحص الحدود، حماية المكدس، والتحقق من صحة الطلبات—ليست مجرد تصحيحات تقنية؛ إنها تحول عقلي نحو بناء أنظمة مرنة. وبينما يتوفر إثبات المفهوم وتدفق الاستغلال علنًا، فإن كل ما تمت مناقشته هنا مخصص حصريًا للاستخدام التعليمي. الهدف هو الفهم، وليس الاستغلال—لتعلم كيف تنكسر هذه الأنظمة حتى نتمكن من بنائها بشكل أقوى.
لا تتردد في عمل fork للمستودع، تجربة PoC وأخبرني إذا رأيت أي تحسينات – يسعدني إضافة المزيد من الأتمتة لمراقبة Sentinel أو لتصحيح وحدات أخرى من FastAPI.
نهاية المقال – شكرًا للقراءة!