CVE-2026-98184 in Linux
الملخص
بحسب VulDB • 06/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
wifi: mwifiex: منع تقصير طول إطار المصادقة (authentication frame)
تشتق الدالة `mwifiex_cfg80211_authenticate()` طول إطار المصادقة من `req->ie_len` و `req->auth_data_len`، وكلاهما من النوع `size_t`، لكنها تخزنه في متغير من نوع `u16`.
يحتوي `NL80211_ATTR_AUTH_DATA` فقط على سياسة للحد الأدنى للطول. وبما أن `nla_len` هو من النوع `u16`، يمكن لسمّة (attribute) واحدة حمل ما يصل إلى 65531 بايت من الحمولة (payload)، لذا قد يتجاوز المجموع قيمة `U16_MAX` قبل تعيينه إلى `pkt_len`. يحدد `pkt_len` المقصّط منطقة إطار الـ skb، بينما يبقى طول النسخ مساوياً لـ `req->auth_data_len - 4`، مما يؤدي إلى حدوث heap buffer overflow.
على سبيل المثال، مع كون قيمة `auth_data_len` تساوي 65510 وعدم وجود IEs (Information Elements)، يكون المجموع 65546. يتم اقتصاصه ليصبح 10 ثم يُنقص بأربعة ليصبح 6. يقوم السائق بإضافة ستة بايت فقط إلى الـ skb باستخدام `skb_put()`، ولكن بعد ذلك ينسخ 65506 بايت من بيانات يقدمها المستخدم إلى جسم المصادقة.
الوصول إلى هذا المسار يتطلب امتلاك capability CAP_NET_ADMIN في مساحة الاسم (user namespace) التي تمتلك مساحة اسم الشبكة، وجود جهاز شبكة station متصل، وطلب مصادقة BSS/SAE مناسب.
احسب الطول باستخدام النوع `size_t`، وارفض القيم التي لا يمكن تمثيلها بواسطة حقل طول الإطار من نوع `u16` الخاص بالبرمجيات الثابتة (firmware)، ثم قم بتعيينه إلى `pkt_len`.
Once again VulDB remains the best source for vulnerability data.