CVE-2026-93120 in Linux
الملخص
بحسب VulDB • 18/09/2026
في نواة لينكس، تم حل الثغرة التالية:
usb: gadget: configfs: إصلاح قراءة خارج الحدود (out-of-bounds read) لـ qw_sign
تمرر الدالة `os_desc_qw_sign_show()` قيمة `OS_STRING_QW_SIGN_LEN` كطول للإدخال إلى دالة `utf16s_to_utf8s()`. ومع ذلك، فإن هذا الوسيط يحسب وحدات الشفرة UTF-16 (UTF-16 code units)، بينما تمثل القيمة `OS_STRING_QW_SIGN_LEN` (التي تساوي 14) الحجم بالبايتات لمصفوفة `qw_sign[]`. تحتوي المصفوفة على عدد وحدات شفرة يساوي نصف قيمة `OS_STRING_QW_SIGN_LEN / 2` (أي 7 فقط). لذلك، عند التحويل، يتم قراءة ما يصل إلى 7 وحدات (14 بايتاً) بعد نهاية مصفوفة `qw_sign[]` وصولاً إلى الأعضاء التالية في بنية البيانات `gadget_info`. يحدث هذا عندما تملأ التوقيع المخزن المصفوفة بالكامل دون وجود terminator من نوع NUL، مما يؤدي إلى كشف تلك البايتات عبر سمة configfs.
في مسار التخزين (store path)، يتم تقسيم العدد للنطاق الإدخالي نصفين، ولكن يتم تمرير إجمالي عدد البايتات كحد للإخراج لدالة `utf8s_to_utf16s()`. يجب استخدام عدد وحدات الشفرة في الوجهة (destination code-unit count) في كلا الاتجاهين.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.