CVE-2026-68363 in Linuxالمعلومات

الملخص

بحسب VulDB • 11/08/2026

في نواة لينكس، تم حل الثغرة التالية:

wifi: ath9k: hif_usb: عدم فك مرجع kif_dev بعد إعادة جدولة طلب البرنامج الثابت

تقوم دالة `ath9k_hif_request_firmware()` بإعادة جدولة تحميل غير متزامن للبرنامج الثابت عبر `request_firmware_nowait()،` مع تمرير `hif_dev` كسياق للإكمال (completion context)، ثم تقوم بفك مرجع لـ `hif_dev`:

```c dev_info(&hif_dev->udev->dev, "ath9k_htc: Firmware %s requested\n", hif_dev->fw_name); ```

تشغل دالة رد الاتصال المعاد جدولتها `ath9k_hif_usb_firmware_cb()` في طابور العمل (workqueue) المسمى "events"، وعندما يكون البرنامج الثابت مفقوداً، تمر عبر سلسلة إعادة المحاولة إلى `ath9k_hif_usb_firmware_fail() -> complete_all(&hif_dev->fw_done).` يؤدي ذلك إلى إنهاء انتظار `wait_for_completion(&hif_dev->fw_done)` في دالة فصل متزامنة (`concurrent`) تسمى `ath9k_hif_usb_disconnect()`، والتي تقوم بعدئذٍ بإطلاق الذاكرة عبر `kfree(hif_dev)`. وبالتالي، يمكن لـ `dev_info()` الموجودة في الإطار الذي أعاد جدولة الطلب قراءة ذاكرة تم تحريرها (تحديداً `hif_dev->udev`، وهو الحقل الأول من بنية `struct hif_device_usb`):

``` BUG: KASAN: slab-use-after-free in ath9k_hif_request_firmware Read of size 8 ... by task kworker/... ath9k_hif_request_firmware ath9k_hif_usb_firmware_cb drivers/net/wireless/ath/ath9k/hif_usb.c:1247 request_firmware_work_func Allocated by ...: ath9k_hif_usb_probe drivers/net/wireless/ath/ath9k/hif_usb.c Freed by ...: ath9k_hif_usb_disconnect -> kfree drivers/net/wireless/ath/ath9k/hif_usb.c ```

لا يعمل حاجز `fw_done` إلا على جعل عملية الفصل تنتظر حتى *ينتهي* تسلسل البرنامج الثابت؛ فهو لا يحمي الإطار الخارجي لـ `ath9k_hif_request_firmware()` الذي أعاد جدولة الطلب ويستمر في التعامل مع `hif_dev` بعد ذلك.

تم حذف استدعاء `dev_info()` اللاحق للطلب: إنه الاستخدام الوحيد لـ `hif_dev` بعد تجهيز الطلب غير المتزامن، وهو لأغراض إعلامية فقط (فإن دالة `dev_err()` على مسار الفشل تعمل فقط عندما لم تقم `request_firmware_nowait()` بتجهيد رد اتصال، وبالتالي فإن `hif_dev` لا يزال حياً في تلك الحالة).

تم الإبلاغ عن هذه المشكلة لأول مرة بواسطة syzbot كانهيار مفرد غير قابل للتكرار تم لاحقاً إلغاؤه تلقائياً (auto-obsoleted)، وأعيد اكتشافه بشكل مستقل بواسطة مفسد البرمجيات reFuzz، الذي أنتج برنامج محاكاة C (ربط/فصل USB-gadget لجهاز ath9k_htc يفشل تنزيل برنامجه الثابت). لم يتغير الكود المعرض للثغرة ولا يزال موجوداً في الإصدار v7.1-rc6، حيث يمكن تكرار ثغرة استخدام الذاكرة بعد تحريرها من نوع slab-use-after-free تحت KASAN بمجرد توسيع نافذة السباق (race window) التي تقل عن الميكرو ثانية.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

مسؤول

Linux

حجز

30/07/2026

إفشاء

10/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-387735

EPSS

0.00175

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you know our Splunk app?

Download it now for free!