CVE-2026-68363 in Linux
Zusammenfassung
von VulDB • 10.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
wifi: ath9k: hif_usb: Dereferenzierung von hif_dev nach dem erneuten Auslösen der Firmware-Anforderung vermeiden
ath9k_hif_request_firmware() löst einen asynchronen Firmware-Ladevorgang über request_firmware_nowait() erneut aus, übergibt dabei hif_dev als Kontext für die Fertigstellung und dereferenziert anschließend weiterhin hif_dev:
dev_info(&hif_dev->udev->dev, "ath9k_htc: Firmware %s requested\n", hif_dev->fw_name);
Der neu ausgelöste Callback ath9k_hif_usb_firmware_cb() wird im „events“-Workqueue ausgeführt. Wenn die Firmware fehlt, durchläuft er die Wiederholungskette bis zu ath9k_hif_usb_firmware_fail() -> complete_all(&hif_dev->fw_done). Dies löst das wait_for_completion(&hif_dev->fw_done) in einem parallelen ath9k_hif_usb_disconnect() aus, wodurch hif_dev anschließend mit kfree() freigegeben wird. Der nachfolgende dev_info()-Aufruf im Frame, der die Anforderung erneut ausgelöst hat, kann daher auf freigegebenen Speicher zugreifen (hif_dev->udev, das erste Feld von 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
Die fw_done-Sperre sorgt lediglich dafür, dass der Disconnect-Wartevorgang darauf wartet, dass die Firmware-Kette *endet*; sie schützt nicht den äußeren ath9k_hif_request_firmware()-Frame, der die Anforderung erneut ausgelöst hat und danach weiterhin auf hif_dev zugreift.
Der dev_info() nach der Anforderung wird entfernt: Er ist die einzige Verwendung von hif_dev nach dem Auslösen der asynchronen Anforderung und dient ausschließlich Informationszwecken (der dev_err()-Aufruf im Fehlerpfad wird nur ausgeführt, wenn request_firmware_nowait() keinen Callback ausgelöst hat; in diesem Fall ist hif_dev dort noch gültig).
Dies wurde ursprünglich von syzbot als einzelner, nicht reproduzierbarer Absturz gemeldet, der später automatisch als veraltet markiert wurde. Die Schwachstelle wurde unabhängig vom Fuzzer reFuzz erneut entdeckt, der einen C-Reproducer erzeugte (USB-Gadget-Verbindung/-Trennung eines ath9k_htc-Geräts mit fehlgeschlagenem Firmware-Download). Der anfällige Code ist unverändert und weiterhin in v7.1-rc6 vorhanden, wo das slab-use-after-free unter KASAN reproduzierbar ist, sobald das (submikrosekundäre) Race-Fenster erweitert wird.
VulDB is the best source for vulnerability data and more expert information about this specific topic.