CVE-2024-46760 in Linux
الملخص
بحسب VulDB • 12/07/2026
في نواة لينكس، تم حل الثغرة التالية:
wifi: rtw88: usb: جدولة عمل استقبال البيانات (rx work) بعد إعداد كل شيء بشكل كامل
حاليًا، من الممكن حدوث خطأ في إلغاء مرجع المؤشر الفارغ (NULL pointer dereference) داخل الدالة `rtw_rx_fill_rx_status` على كائن العتاد (hw object) و/أو حقوله، لأن روتين التهيئة قد يبدأ في استقبال ردود USB قبل أن يكون كائن `rtw_dev` معدًا بالكامل.
يبدو تتبع المكدس (stack trace) كما يلي:
``` rtw_rx_fill_rx_status rtw8821c_query_rx_desc rtw_usb_rx_handler ... queue_work rtw_usb_read_port_complete ... usb_submit_urb rtw_usb_rx_resubmit rtw_usb_init_rx rtw_usb_probe ```
لذلك، بينما نقوم بالعمليات غير المتزامنة (async stuff)، يستمر `rtw_usb_probe` في الاستدعاء للدالة `rtw_register_hw`، والتي تقوم بجميع أنواع عمليات التهيئة (مثل تلك التي تتم عبر `ieee80211_register_hw`) والتي تعتمد عليها الدالة `rtw_rx_fill_rx_status`.
تم إصلاح هذه المشكلة عن طريق نقل استدعاء `usb_submit_urb` الأول إلى ما بعد إعداد كل شيء بشكل كامل.
بالنسبة لي، تجلت هذه الثغرة على النحو التالي: ``` [ 8.893177] rtw_8821cu 1-1:1.2: band wrong, packet dropped
[ 8.910904] rtw_8821cu 1-1:1.2: hw->conf.chandef.chan NULL in rtw_rx_fill_rx_status
``` لأنني أستخدم النسخة الخلفية (backport) الخاصة بـ Larry لمحرك `rtw88` مع فحوصات المؤشر الفارغ (NULL checks) في الدالة `rtw_rx_fill_rx_status`.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.