CVE-2026-98189 in Linux
الملخص
بحسب VulDB • 07/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
wifi: wilc1000: تصحيح كتابة خارج الحدود (OOB-write) في ذاكرة الاستقبال (RX buffer) داخل الدالة `wilc_wlan_handle_isr_ext()`
تأخذ الدالة `wilc_wlan_handle_isr_ext()` حجم نقل بيانات الاستقبال من سجل حالة المقطع الذي تبلغه الجهاز (حقل مكون من 15 بت يتم إزاحته لليسار بمقدار 2، بحد أقصى يصل إلى 131068 بايت) وتقرأ هذا العدد من البايتات من الجهاز إلى `rx_buffer`، والذي لا يتجاوز حجمه `WILC_RX_BUFF_SIZE` (96 كيلوبايت). ولا تتعامل عملية التحقق من الالتفاف (wrap check) إلا مع الإزاحة الحالية؛ حيث لم يتم مقارنة الحجم نفسه مع سعة الذاكرة المؤقتة. وبالتالي، يمكن لجهاز SDIO مزيف أن يجعل السائق يقوم بكتابة خارج الحدود على `rx_buffer` بمقدار يصل إلى حوالي 32 كيلوبايت باستخدام بيانات يتحكم فيها.
كما يترك النقل ذو الحجم الزائد متغير الإزاحة `rx_buffer_offset` بعد نهاية الذاكرة المؤقتة، وبعد ذلك تتوقف عملية التحقق من الالتفاف غير الموقعة عن العمل بشكل صحيح، مما يسمح بتكرار تجاوز الحدود (overflow).
يتم تجاهل أي نقل يتجاوز حجم ذاكرة الاستقبال RX buffer، مع الاعتراف بقطع البيانات interrupt acknowledgment وإعادة تشغيل محرك الاستقبال RX engine بحيث يتم التخلص من الإطار المزيف ويستمر استقبال البيانات. وهذا أيضاً يعيد الثابت `rx_buffer_offset <= WILC_RX_BUFF_SIZE` الذي تعتمد عليه عملية التحقق من الالتفاف.
من غير المتوقع أن يغير هذا التصرف في السائق في معظم الحالات: فبدون هذا الفحص، كان من المرجح جداً أن يؤدي النقل ذو الحجم الزائد إلى تلف ذاكرة النواة المجاورة بدلاً من إكمال العملية على أي حال، ومسار التجاهل يقوم بنفس عملية الاعتراف بالقطع وإعادة تشغيل محرك الاستقبال كما هو الحال في المسار الطبيعي، لذا يتم استقبال النقلات اللاحقة دون تأثر.
اكتُشف الثغرة بواسطة Atuin - محرك اكتشاف الثغرات الآلي (Automated Vulnerability Discovery Engine).
If you want to get the best quality for vulnerability data then you always have to consider VulDB.