CVE-2026-68363

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
10/08/2026
Last modified:
19/08/2026

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> wifi: ath9k: hif_usb: don&amp;#39;t dereference hif_dev after re-arming firmware request<br /> <br /> ath9k_hif_request_firmware() re-arms an asynchronous firmware load via<br /> request_firmware_nowait(), passing hif_dev as the completion context, and<br /> then still dereferences hif_dev:<br /> <br /> dev_info(&amp;hif_dev-&gt;udev-&gt;dev, "ath9k_htc: Firmware %s requested\n",<br /> hif_dev-&gt;fw_name);<br /> <br /> The re-armed callback ath9k_hif_usb_firmware_cb() runs on the "events"<br /> workqueue and, when the firmware is missing, walks the retry chain into<br /> ath9k_hif_usb_firmware_fail() -&gt; complete_all(&amp;hif_dev-&gt;fw_done). That<br /> releases the wait_for_completion(&amp;hif_dev-&gt;fw_done) in a concurrent<br /> ath9k_hif_usb_disconnect(), which then kfree()s hif_dev. The trailing<br /> dev_info() in the frame that re-armed the request can therefore read freed<br /> memory (hif_dev-&gt;udev, the first field of struct hif_device_usb):<br /> <br /> BUG: KASAN: slab-use-after-free in ath9k_hif_request_firmware<br /> Read of size 8 ... by task kworker/...<br /> ath9k_hif_request_firmware<br /> ath9k_hif_usb_firmware_cb drivers/net/wireless/ath/ath9k/hif_usb.c:1247<br /> request_firmware_work_func<br /> Allocated by ...:<br /> ath9k_hif_usb_probe drivers/net/wireless/ath/ath9k/hif_usb.c<br /> Freed by ...:<br /> ath9k_hif_usb_disconnect -&gt; kfree drivers/net/wireless/ath/ath9k/hif_usb.c<br /> <br /> The fw_done barrier only makes disconnect wait for the firmware chain to<br /> *terminate*; it does not protect the outer ath9k_hif_request_firmware()<br /> frame that re-armed the request and keeps touching hif_dev afterwards.<br /> <br /> Drop the post-request dev_info(): it is the only use of hif_dev after the<br /> async request is armed, and it is purely informational (the dev_err() on the<br /> failure path runs only when request_firmware_nowait() did not arm a callback,<br /> so hif_dev is still alive there).<br /> <br /> This was first reported by syzbot as a single, non-reproduced crash that was<br /> later auto-obsoleted, and was independently rediscovered by the reFuzz fuzzer,<br /> which produced a C reproducer (USB-gadget connect/disconnect of an ath9k_htc<br /> device whose firmware download fails). The vulnerable code is unchanged and<br /> still present in v7.1-rc6, where the slab-use-after-free reproduces under KASAN<br /> once the (sub-microsecond) race window is widened.

Impact