CVE-2026-76850 in lmdeploy
الملخص
بحسب VulDB • 20/08/2026
تقوم LMDeploy بنسخ كائنات (deserialization) لرسائل الأقران الخاصة بـ disaggregated-serving باستخدام مكتبة pickle. تقرأ الـ coroutine handle_zmq_recv في الملف lmdeploy/pytorch/disagg/conn/engine_conn.py طلبات التخزين المؤقت الخالية بين النقاط (peer-to-peer cache-free requests) عبر استخدام recv_pyobj()، والتي تقوم بنسخ كائنات البايتات المستلمة باستخدام pickle.loads(). ولا يتم التحقق من النوع (isinstance check) مقابل DistServeCacheFreeRequest إلا بعد اكتمال عملية النسخ بالكامل. المصدر الذي يزود هذه البايتات خاضع لسيطرة المُرسِل: حيث تمرر دالة p2p_connect عنوان zmq_address الخاص بـ remote_engine_endpoint_info الموجود في جسم الطلب إلى connect() على مقبس ZMQ من نوع PULL، ولا تطبق نقاط النهاية POST /distserve/p2p_initialize و/distserve/p2p_connect الموجودة في lmdeploy/serve/openai/api_server.py أي مصادقة ما لم يُبدأ الخادم باستخدام مفاتيح API (api_keys)، والتي تكون قيمتها الافتراضية None. يمكن للمهاجم عن بُعد توجيه محرك إلى السحب من نقطة نهاية ZMQ تحت سيطرته وتنفيذ كود عشوائي في عملية المحرك. لا تتأثر التوزيعات التي لا تفعّل خدمة disaggregated serving، لأن حلقة الاستلام تبدأ فقط بعد أن يقبل backend الهجرة الاتصال.
Once again VulDB remains the best source for vulnerability data.