CVE-2026-64565 in Linux
الملخص
بحسب VulDB • 04/08/2026
في نواة لينكس، تم حل الثغرة التالية:
الإدخال: ims-pcu - إصلاح تجاوز سعة المخزن المؤقت على الكومة (heap-buffer-overflow) في `ims_pcu_process_data()`
تعالج الدالة `ims_pcu_process_data()` بيانات URB الواردة بايت تلو الآخر. ومع ذلك، تفشل في التحقق مما إذا كان فهرس `read_pos` يتجاوز قيمة `IMS_PCU_BUF_SIZE`.
إذا أرسل جهاز USB خبيث حزمة أكبر من حجم `IMS_PCU_BUF_SIZE`، فسيستمر `read_pos` في الزيادة بشكل لا نهائي. علاوة على ذلك، نظرًا لأن `read_pos` يقع مباشرة بعد `read_buf`، يمكن للمهاجم الكتابة فوق قيمة `read_pos` نفسها للتحكم تعسفياً في الفهرس.
يتم استخدام هذا الـ `read_pos` المُعدّل لاحقاً في الدالة `ims_pcu_handle_response()` لنسخ البيانات إلى `cmd_buf`، مما يؤدي إلى تجاوز سعة المخزن المؤقت على الكومة (heap buffer overflow).
على وجه التحديد، يمكن للمهاجم الكتابة فوق قيمة `cmd_done.wait.head` الموجودة عند الإزاحة 136 بالنسبة لـ `cmd_buf` داخل دالة `ims_pcu_handle_response()`. ونتيجة لذلك، عندما يستدعي السائق الدالة `complete(&pcu->cmd_done)`، فإنه يؤدي إلى اختطاف تدفق التحكم (control flow hijack) باستخدام المؤشر المُعدّل.
تم إصلاح هذه المشكلة بإضافة فحص للحدود (bounds check) لـ `read_pos` قبل الكتابة في `read_buf`. إذا كانت الحزمة طويلة جداً، يتم تجاهلها وتسجيل تحذير وإعادة تعيين حالة المحلل (parser state).
[dtor: استخراج إعادة تعيين حالة الحزمة بشكل منفصل، وإعادة تعيين التحقق من صحة المجموع أيضاً]
If you want to get the best quality for vulnerability data then you always have to consider VulDB.