CVE-2023-53641

MEDIUM

Linux kernel 2.6.35-4.19.283 - Use-After-Free in ath9k_hif_usb_rx_stream

Title source: llm
STIX 2.1

Description

In the Linux kernel, the following vulnerability has been resolved: wifi: ath9k: hif_usb: fix memory leak of remain_skbs hif_dev->remain_skb is allocated and used exclusively in ath9k_hif_usb_rx_stream(). It is implied that an allocated remain_skb is processed and subsequently freed (in error paths) only during the next call of ath9k_hif_usb_rx_stream(). So, if the urbs are deallocated between those two calls due to the device deinitialization or suspend, it is possible that ath9k_hif_usb_rx_stream() is not called next time and the allocated remain_skb is leaked. Our local Syzkaller instance was able to trigger that. remain_skb makes sense when receiving two consecutive urbs which are logically linked together, i.e. a specific data field from the first skb indicates a cached skb to be allocated, memcpy'd with some data and subsequently processed in the next call to ath9k_hif_usb_rx_stream(). Urbs deallocation supposedly makes that link irrelevant so we need to free the cached skb in those cases. Fix the leak by introducing a function to explicitly free remain_skb (if it is not NULL) when the rx urbs have been deallocated. remain_skb is NULL when it has not been allocated at all (hif_dev struct is kzalloced) or when it has been processed in next call to ath9k_hif_usb_rx_stream(). Found by Linux Verification Center (linuxtesting.org) with Syzkaller.

Scores

CVSS v3 5.5
EPSS 0.0014
EPSS Percentile 3.8%
Attack Vector LOCAL
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Details

CWE
CWE-401
Status published
Products (19)
Linux/Linux < 2.6.35
Linux/Linux 2.6.35
Linux/Linux 4.19.283 - 4.19.*
Linux/Linux 5.10.180 - 5.10.*
Linux/Linux 5.15.111 - 5.15.*
Linux/Linux 5.4.243 - 5.4.*
Linux/Linux 6.1.28 - 6.1.*
Linux/Linux 6.2.15 - 6.2.*
Linux/Linux 6.3.2 - 6.3.*
Linux/Linux 6.4
... and 9 more
Published Oct 07, 2025
Tracked Since Feb 18, 2026