أصدر مشروع llama.cpp الإصدار b11000، الذي يعالج ثغرة أمنية حرجة في خادم RPC. يحل الإصلاح خطأً من نوع use-after-free سمح للعملاء عن بُعد غير المصادق عليهم بتنفيذ الأكواد عن بُعد من خلال التلاعب بالرسوم البيانية للحساب المخزنة مؤقتًا.

  • كانت التنفيذات السابقة تخزن الرسوم البيانية للحساب لكل جهاز لتجنب إعادة إرسال بيانات الموتر أثناء عمليات GRAPH_RECOMPUTE.
  • كانت هذه العقد المخزنة مؤقتًا تحتفظ بمؤشرات مباشرة إلى مخازن الخلفية؛ وإذا تم تحرير المخزن عبر FREE_BUFFER، فإن إعادة التنفيذ اللاحقة كانت تصل إلى مؤشرات معلقة.
  • يمكن للمهاجمين إعادة تشكيل كتل الذاكرة عبر أوامر ALLOC_BUFFER و SET_TENSOR لتسريب عناوين libc والتحكم في جدول طرق واجهة المخزن vtable.
  • يتجاهل التصحيح جميع الرسوم البيانية المخزنة مؤقتًا في free_buffer()، مما يدفع العميل إلى العودة إلى GRAPH_COMPUTE في المكالمة التالية.

يمنع هذا التحديث استغلال تنفيذ الأكواد عن بُعد الذي يستهدف خادم RPC الخاص بـ llama.cpp دون الحاجة إلى أي تغييرات في البروتوكول أو واجهة برمجة التطبيقات.