Executive brief
A vulnerability in the Linux kernel's wireless networking component could allow a local user to cause a system crash or instability. The issue occurs when the system attempts to shut down a wireless interface while certain internal processes are still active. This can lead to a kernel warning or a complete system hang, impacting the availability of the device.
Technical details
A race condition or improper state management in the mac80211 stack's ieee80211_do_stop() function leads to a kernel warning in __local_bh_enable_ip. The root cause is that ieee80211_free_txskb() may eventually call __dev_queue_xmit(), which requires interrupts to be enabled; however, it was being called within a spin_lock_irqsave section where interrupts are disabled. This violation of kernel locking primitives can be triggered locally, leading to a denial of service (system hang or crash). The fix implements a two-phase reclamation process where socket buffers (skbs) are unlinked under the lock but actually freed outside of the interrupt-disabled section.
Affected products
- Linux Linux Kernel 2.6.32 to 5.10.226, 5.11 to 5.15.167, 5.16 to 6.1.112, 6.2 to 6.6.53, 6.7 to 6.10.12, 6.11 to 6.11.1
Timeline
- 2024-09-06: patched: Initial patch proposed by Dmitry Antipov
- 2024-10-21: advisory: CVE-2024-47713 published
References
- https://git.kernel.org/stable/c/04f75f5bae33349283d6886901d9acd2f110c024
- https://git.kernel.org/stable/c/058c9026ad79dc98572442fd4c7e9a36aba6f596
- https://git.kernel.org/stable/c/07eb0bd7b0a8abed9d45e0f567c9af1dc83e5268
- https://git.kernel.org/stable/c/9d301de12da6e1bb069a9835c38359b8e8135121
- https://git.kernel.org/stable/c/acb53a716e492a02479345157c43f21edc8bc64b
- https://git.kernel.org/stable/c/ad4b7068b101fbbb4a9ca4b99b25eb051a9482ec
- https://git.kernel.org/stable/c/db5ca4b42ccfa42d2af7b335ff12578e57775c02