CVE-2026-31393 in Linux
الملخص
بحسب VulDB • 02/06/2026
في نواة لينكس، تم حل الثغرة التالية:
بلوتوث: L2CAP: التحقق من طول حمولة L2CAP_INFO_RSP قبل الوصول إليها
تقوم الدالة `l2cap_information_rsp()` بالتحقق من أن `cmd_len` يغطي رأس `l2cap_info_rsp` الثابت (النوع + النتيجة، 4 بايتات)، لكنها تقرأ بعد ذلك `rsp->data` دون التحقق من وجود الحمولة:
- يستدعي `L2CAP_IT_FEAT_MASK` الدالة `get_unaligned_le32(rsp->data)`، مما يؤدي إلى قراءة 4 بايتات بعد الرأس (يتطلب أن يكون `cmd_len >= 8`). - يقرأ `L2CAP_IT_FIXED_CHAN` `rsp->data[0]`، أي بايت واحد بعد الرأس (يتطلب أن يكون `cmd_len >= 5`).
يؤدي وجود رسالة `L2CAP_INFO_RSP` مقطوعة مع `result == L2CAP_IR_SUCCESS` إلى قراءة خارج الحدود (out-of-bounds read) لبيانات `skb` المجاورة.
احمِ كل وصول إلى البيانات بفحص طول الحمولة المطلوب. إذا كانت الحمولة أقصر من اللازم، فتخطَّ القراءة واترك آلة الحالة (state machine) تكتمل باستخدام القيم الافتراضية الآمنة (سيظل `feat_mask` و `remote_fixed_chan` صفراً بسبب استخدام `kzalloc`)، بحيث تعمل عمليات تنظيف مؤقت المعلومات (`info timer cleanup`) و `l2cap_conn_start()` بشكل صحيح ولا يتعطل الاتصال.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.