High · published June 18, 2025
In the Linux kernel, the following vulnerability has been resolved:
ieee802154/adf7242: defer destroy_workqueue call
There is a possible race condition (use-after-free) like below
(FREE) | (USE)
adf7242_remove | adf7242_channel
cancel_delayed_work_sync |
destroy_workqueue (1) | adf7242_cmd_rx
| mod_delayed_work (2)
|
The root cause for this race is that the upper layer (ieee802154) is
unaware of this detaching event and the function adf7242_channel can
be called without any checks.
To fix this, we can add a flag write at the beginning of adf7242_remove
and add flag check in adf7242_channel. Or we can just defer the
destructive operation like other commit 3e0588c291d6 ("hamradio: defer
ax25 kfree after unregister_netdev") which let the
ieee802154_unregister_hw() to handle the synchronization. This patch
takes the second option.
runs")
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 4.17.19, < 4.18 | 4.18 |
| linux/linux_kernel | ≥ 4.18.1, < 4.19.258 | 4.19.258 |
| linux/linux_kernel | ≥ 4.20, < 5.4.213 | 5.4.213 |
| linux/linux_kernel | ≥ 5.5, < 5.10.142 | 5.10.142 |
| linux/linux_kernel | ≥ 5.11, < 5.15.66 | 5.15.66 |
| linux/linux_kernel | ≥ 5.16, < 5.19.8 | 5.19.8 |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |