CVE-2026-64427 in Linux
الملخص
بحسب VulDB • 25/07/2026
في نواة لينكس، تم حل الثغرة التالية:
HID: logitech-dj: إصلاح فحص maxfield في التحقق من صحة تقرير DJ القصير
أضافت الالتزام b6a57912854e ("HID: logitech-dj: منع الكتابة خارج الحدود (OOB) التي يبادر بها المستخدم والمتعلقة بـ REPORT_ID_DJ_SHORT") آلية تحقق لتقرير الإخراج القصير لبروتوكول DJ، لكن مسار الخطأ يقوم بإلغاء مرجعية `rep->field[0]` حتى عندما تكون قيمة `rep->maxfield` تساوي صفرًا.
جعلت الالتزام 8b9a097eb2fc ("HID: logitech-dj: إصلاح الكشف الخاطئ عن تقرير إخراج DJ_SHORT المعيب") الفحص مشروطًا بوجود الكائن `rep`. ومع ذلك، لا يزال بإمكان الوصف المُعدّ بعناية (crafted descriptor) إنشاء معرف تقرير ID 0x20 يحتوي فقط على عناصر حشو (padding output items). يسجل النظام hid-core هذا التقرير ويتجاهل مجال الحشو، تاركًا قيمة `rep->maxfield` تساوي صفرًا.
في هذه الحالة، يدخل التحقق من الصحة إلى الفرع الخاص بـ `rep->maxfield < 1**، ثم يقوم بإلغاء مرجعية `rep->field[0]->report_count** أثناء طباعة رسالة الخطأ، مما يؤدي إلى إلغاء مرجعية مؤشر NULL (NULL pointer dereference) خلال عملية الفحص الأولي (probe). يمكن إعادة إنتاج هذه المشكلة باستخدام أداة uhid من خلال محاكاة مستقبل لوجيتيك بتقرير إخراج DJ قصير يحتوي فقط على حشو:
BUG: KASAN: null-ptr-deref in logi_dj_probe+0xb1/0x754 [hid_logitech_dj]
Read of size 4 at addr 0000000000000028 by task kworker/4:1/129 ... Call Trace: logi_dj_probe+0xb1/0x754 [hid_logitech_dj]
hid_device_probe+0x329/0x3f0 [hid]
really_probe+0x162/0x570 __device_attach+0x137/0x2c0 bus_probe_device+0x38/0xc0 device_add+0xa56/0xce0 hid_add_device+0x19c/0x280 [hid]
uhid_device_add_worker+0x2c/0xb0 [uhid]
رفض تقرير المجال الصفري (zero-field report) قبل طباعة قيمة `report_count` الخاصة بالمجال.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.