Vulnerability · Published Jul 12, 2024 · Assigned by Linux

CVE-2024-40912wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup()

Medium 5.5

In plain English

A medium-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 13% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS NVD)5.5Medium
Exploit odds (30 days)0.2%top 87.0% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup() The ieee80211_sta_ps_deliver_wakeup() function takes sta->ps_lock to synchronizes with ieee80211_tx_h_unicast_ps_buf() which is called from softirq context. However using only spin_lock() to get sta->ps_lock in ieee80211_sta_ps_deliver_wakeup() does not prevent softirq to execute on this same CPU, to run ieee80211_tx_h_unicast_ps_buf() and try to take this same lock ending in deadlock. Below is an example of rcu stall that arises in such situation. rcu: INFO: rcu_sched self-detected stall on CPU rcu: 2-....: (42413413 ticks this GP) idle=b154/1/0x4000000000000000 softirq=1763/1765 fqs=21206996 rcu: (t=42586894 jiffies g=2057 q=362405 ncpus=4) CPU: 2 PID: 719 Comm: wpa_supplicant Tainted: G W 6.4.0-02158-g1b062f552873 #742 Hardware name: RPT (r1) (DT) pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : queued_spin_lock_slowpath+0x58/0x2d0 lr : invoke_tx_handlers_early+0x5b4/0x5c0 sp : ffff00001ef64660 x29: ffff00001ef64660 x28: ffff000009bc1070 x27: ffff000009bc0ad8 x26: ffff000009bc0900 x25: ffff00001ef647a8 x24: 0000000000000000 x23: ffff000009bc0900 x22: ffff000009bc0900 x21: ffff00000ac0e000 x20: ffff00000a279e00 x19: ffff00001ef646e8 x18: 0000000000000000 x17: ffff800016468000 x16: ffff00001ef608c0 x15: 0010533c93f64f80 x14: 0010395c9faa3946 x13: 0000000000000000 x12: 00000000fa83b2da x11: 000000012edeceea x10: ffff0000010fbe00 x9 : 0000000000895440 x8 : 000000000010533c x7 : ffff00000ad8b740 x6 : ffff00000c350880 x5 : 0000000000000007 x4 : 0000000000000001 x3 : 0000000000000000 x2 : 0000000000000000 x1 : 0000000000000001 x0 : ffff00000ac0e0e8 Call trace: queued_spin_lock_slowpath+0x58/0x2d0 ieee80211_tx+0x80/0x12c ieee80211_tx_pending+0x110/0x278 tasklet_action_common.constprop.0+0x10c/0x144 tasklet_action+0x20/0x28 _stext+0x11c/0x284 ____do_softirq+0xc/0x14 call_on_irq_stack+0x24/0x34 do_softirq_own_stack+0x18/0x20 do_softirq+0x74/0x7c __local_bh_enable_ip+0xa0/0xa4 _ieee80211_wake_txqs+0x3b0/0x4b8 __ieee80211_wake_queue+0x12c/0x168 ieee80211_add_pending_skbs+0xec/0x138 ieee80211_sta_ps_deliver_wakeup+0x2a4/0x480 ieee80211_mps_sta_status_update.part.0+0xd8/0x11c ieee80211_mps_sta_status_update+0x18/0x24 sta_apply_parameters+0x3bc/0x4c0 ieee80211_change_station+0x1b8/0x2dc nl80211_set_station+0x444/0x49c genl_family_rcv_msg_doit.isra.0+0xa4/0xfc genl_rcv_msg+0x1b0/0x244 netlink_rcv_skb+0x38/0x10c genl_rcv+0x34/0x48 netlink_unicast+0x254/0x2bc netlink_sendmsg+0x190/0x3b4 ____sys_sendmsg+0x1e8/0x218 ___sys_sendmsg+0x68/0x8c __sys_sendmsg+0x44/0x84 __arm64_sys_sendmsg+0x20/0x28 do_el0_svc+0x6c/0xe8 el0_svc+0x14/0x48 el0t_64_sync_handler+0xb0/0xb4 el0t_64_sync+0x14c/0x150 Using spin_lock_bh()/spin_unlock_bh() instead prevents softirq to raise on the same CPU that is holding the lock.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
AlmaLinux:9bpftool7.3.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-debug5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-debug-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-debug-devel5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-debug-devel-matched5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-debug-modules5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-debug-modules-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-debug-modules-extra5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-devel5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-devel-matched5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-modules5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-modules-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-64k-modules-extra5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-abi-stablelists5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-cross-headers5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-debug5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-debug-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-debug-devel5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-debug-devel-matched5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-debug-modules5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-debug-modules-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-debug-modules-extra5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-debug-uki-virt5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-devel5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-devel-matched5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-doc5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-headers5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-modules5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-modules-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-modules-extra5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-rt5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-rt-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-rt-debug5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-rt-debug-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-rt-debug-devel5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-rt-debug-modules5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-rt-debug-modules-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-rt-debug-modules-extra5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-rt-devel5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-rt-modules5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-rt-modules-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-rt-modules-extra5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-tools5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-tools-libs5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-tools-libs-devel5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-uki-virt5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-zfcpdump5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-zfcpdump-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-zfcpdump-devel5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-zfcpdump-devel-matched5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-zfcpdump-modules5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-zfcpdump-modules-core5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9kernel-zfcpdump-modules-extra5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9libperf5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9perf5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9python3-perf5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9rtla5.14.0-427.33.1.el9_4ALSA-2024:5928
AlmaLinux:9rv5.14.0-427.33.1.el9_4ALSA-2024:5928
Debian:12linux6.1.99-1DSA-5731-1
Debian:12linux6.1.99-1DEBIAN-CVE-2024-40912
Debian:13linux6.9.7-1DEBIAN-CVE-2024-40912
Debian:14linux6.9.7-1DEBIAN-CVE-2024-40912
Ubuntu:22.04:LTSlinux5.15.0-121.131UBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux6.8.0-44.44UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-aws5.15.0-1069.75UBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux-aws6.8.0-1015.16UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-aws-6.86.8.0-1015.16~22.04.1UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-azure5.15.0-1072.81UBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux-azure6.8.0-1014.16UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-azure-6.86.8.0-1014.16~22.04.1UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-azure-fde5.15.0-1072.81.1UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-gcp5.15.0-1068.76UBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux-gcp6.8.0-1014.16UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-gcp-6.86.8.0-1014.16~22.04.1UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-gke5.15.0-1066.72UBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux-gke6.8.0-1010.13UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-gkeop5.15.0-1052.59UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-hwe-6.86.8.0-45.45~22.04.1UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-ibm5.15.0-1062.65UBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux-ibm6.8.0-1012.12UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-ibm-6.86.8.0-1012.12~22.04.1UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-intel-iotg5.15.0-1064.70UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-kvm5.15.0-1066.71UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-lowlatency5.15.0-121.131UBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux-lowlatency6.8.0-44.44.1UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.86.8.0-44.44.1~22.04.1UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-nvidia5.15.0-1064.65UBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux-nvidia6.8.0-1013.14UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-nvidia-6.86.8.0-1013.14~22.04.1UBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux-nvidia-lowlatency6.8.0-1013.14.1UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-nvidia-tegra5.15.0-1028.28UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-nvidia-tegra-igx5.15.0-1016.16UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux-oem-6.86.8.0-1012.12UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-oracle5.15.0-1067.73UBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux-oracle6.8.0-1012.12UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-oracle-6.86.8.0-1012.12~22.04.1UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-raspi5.15.0-1062.65UBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux-raspi6.8.0-1011.12UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2024-40912
Ubuntu:24.04:LTSlinux-riscv6.8.0-44.44.1UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-riscv-6.86.8.0-44.44.1~22.04.1UBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2024-40912
Ubuntu:22.04:LTSlinux-xilinx-zynqmp5.15.0-1035.39UBUNTU-CVE-2024-40912

Affected products (as reported)

VendorProductVersions
Linux Linux 1d147bfa64293b2723c4fec50922168658e613ba – before e51637e0c66a6f72d134d9f95daa47ea62b43c7e1d147bfa64293b2723c4fec50922168658e613ba – before 28ba44d680a30c51cf485a2f5a3b680e66ed39321d147bfa64293b2723c4fec50922168658e613ba – before e7e916d693dcb5a297f40312600a82475f2e63bc1d147bfa64293b2723c4fec50922168658e613ba – before d90bdff79f8e40adf889b5408bfcf521528b169f1d147bfa64293b2723c4fec50922168658e613ba – before 9c49b58b9a2bed707e7638576e54c4bccd97b9eb1d147bfa64293b2723c4fec50922168658e613ba – before 456bbb8a31e425177dc0e8d4f98728a560c20e811d147bfa64293b2723c4fec50922168658e613ba – before 47d176755d5c0baf284eff039560f8c1ba0ea4851d147bfa64293b2723c4fec50922168658e613ba – before 44c06bbde6443de206b30f513100b5670b23fc5e
Linux Linux 3.14

References