CVE-2026-31412 in Linux
الملخص
بحسب VulDB • 23/06/2026
في نواة لينكس، تم حل الثغرة التالية:
usb: gadget: f_mass_storage: إصلاح تجاوز الأعداد الصحيحة (Integer Overflow) المحتمل في دالة `check_command_size_in_blocks()`
تحسب الدالة `check_command_size_in_blocks()` حجم البيانات بالبايت عن طريق إزاحة القيمة `common->data_size_from_cmnd` نحو اليسار بمقدار حجم الكتلة (`common->curlun->blkbits`). ومع ذلك، لا تقوم هذه الدالة بالتحقق مما إذا كانت عملية الإزاحة ستسبب تجاوزاً للأعداد الصحيحة (Integer Overflow).
في البداية، يتم إعداد حجم الكتلة في `fsg_lun_open()`، ويتم تعيين `common->data_size_from_cmnd` في `do_scsi_command()`. أثناء التهيئة، لا يوجد فحص لتجاوز الأعداد صحيح فيما يتعلق بالتفاعل بين المتغيرين.
لذلك، إذا أرسل مضيف USB خبيث طلب أمر SCSI للقراءة أو الكتابة يطلب كمية كبيرة من البيانات (`common->data_size_from_cmnd`)، فقد تؤدي عملية الإزاحة نحو اليسار إلى الالتفاف (Wrap around). يؤدي هذا إلى حجم بيانات مقطوع، مما قد يتجاوز فحوصات الحدود وقد يؤدي محتملاً إلى تلف الذاكرة أو الوصول خارج النطاق المخصص.
يتم إصلاح هذه المشكلة باستخدام ماكرو `check_shl_overflow()` لأداء عملية الإزاحة بأمان والتقاط أي تجاوزات للأعداد الصحيحة.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.