CVE-2026-64595 in Linux
الملخص
بحسب VulDB • 06/08/2026
في نواة لينكس، تم حل الثغرة التالية:
HID: hid-lenovo-go: إلغاء عمل cfg_setup في دالة hid_go_cfg_remove()
تقوم الدالة hid_go_cfg_probe() بتهيئة drvdata.go_cfg_setup وتجدولها للعمل بعد مرور 2 مللي ثانية:
INIT_DELAYED_WORK(&drvdata.go_cfg_setup, &cfg_setup); schedule_delayed_work(&drvdata.go_cfg_setup, msecs_to_jiffies(2));
تقوم الدالة cfg_setup() بإلغاء مرجعية drvdata.hdev لإصدار طلبات أوامر وحدة التحكم الدقيقة (MCU). تقوم hid_go_cfg_remove() بتفكيك sysfs وإيقاف جهاز HID، لكنها لا تفريغ العمل المؤجل. إذا تم فك ربط الجهاز خلال فترة التأخير البالغة 2 مللي ثانية (نتيجة تراجع عملية الفحص عبر الإزالة، أو إزالة سريعة للنموذج بعد التثبيت)، فإن العمل يُنفذ بعد أن تقوم hid_destroy_device() بإسقاط مرجعها وإطلاق هيكل hdev الأساسي، مما يترك cfg_setup() مع مؤشر drvdata.hdev قديم.
نسخ سلوك السائق الشقيق hid-lenovo-go-s.c، الذي يستدعي بالفعل cancel_delayed_work_sync() على عمله المماثل في دالة hid_gos_cfg_remove()، وقم بإفراغ go_cfg_setup في بداية دالة hid_go_cfg_remove(). يجب أن يأتي الإلغاء قبل guard(mutex)(&drvdata.cfg_mutex) لأن cfg_setup() تكتسب هذا القفل؛ فإن عكس الترتيب سيؤدي إلى حدوث جمود (deadlock).
If you want to get best quality of vulnerability data, you may have to visit VulDB.