Skip to content
Fencer Vulns
medium 5.5

CVE-2024-40912 json

wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup()

published 2024-07-12 2 y ago modified 2026-10-15 25 d ago also EUVD-2024-38723

cvss
5.5
version 3.1, NVD
cisa kev
Not listed
not in CISA's catalog
epss
0.2%
EPSS 0.2% chance of exploitation in 30 days, percentile 13%
public exploits
0
none known

Summary

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.

Patch / fix

  • Linux Linux 3.3, 3.5, 3.11, 3.13, 3.14, 4.19.317, 5.4.279, 5.10.221, 5.15.162, 6.1.95, 6.6.35, 6.9.6, 6.10
  • Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem V1.1.1
  • linux Debian 12 6.1.99-1
  • linux Debian 14, Debian 13 6.9.7-1

debian advisories DEBIAN-CVE-2024-40912

  • linux Ubuntu 20.04 LTS 5.4.0-195.215
  • linux Ubuntu 22.04 LTS 5.15.0-121.131
  • linux Ubuntu 24.04 LTS 6.8.0-44.44
  • linux-aws Ubuntu 20.04 LTS 5.4.0-1132.142
  • linux-aws Ubuntu 22.04 LTS 5.15.0-1069.75
  • linux-aws Ubuntu 24.04 LTS 6.8.0-1015.16
  • linux-gcp Ubuntu 20.04 LTS 5.4.0-1136.145
  • linux-gcp Ubuntu 22.04 LTS 5.15.0-1068.76

ubuntu advisories UBUNTU-CVE-2024-40912

Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • kernel RHEL 8 4.18.0-553.22.1.el8_10
  • perf RHEL 8 4.18.0-553.22.1.el8_10
  • bpftool RHEL 8 4.18.0-553.22.1.el8_10
  • kernel-core RHEL 8 4.18.0-553.22.1.el8_10
  • kernel-tools RHEL 8 4.18.0-553.22.1.el8_10
  • python3-perf RHEL 8 4.18.0-553.22.1.el8_10
  • kernel-modules RHEL 8 4.18.0-553.22.1.el8_10
  • kernel-zfcpdump RHEL 8 4.18.0-553.22.1.el8_10

red hat advisories RHSA-2024:7000RHSA-2024:7001RHSA-2024:5928

  • kernel-rt Linux Micro 6.0 6.4.0-10.1
  • kernel-source-rt Linux Micro 6.0 6.4.0-10.1
  • kernel-livepatch-MICRO-6-0-RT_Update_2 Linux Micro 6.0 1-1.1
  • kernel-source Linux Micro 6.0 6.4.0-19.1
  • kernel-default Linux Micro 6.0 6.4.0-19.1
  • kernel-kvmsmall Linux Micro 6.0 6.4.0-19.1
  • kernel-default-base Linux Micro 6.0 6.4.0-17.1.1.51
  • kernel-livepatch-MICRO-6-0_Update_2 Linux Micro 6.0 1-1.1

suse advisories SUSE-SU-2025:20047-1SUSE-SU-2025:20044-1SUSE-SU-2024:3383-1SUSE-SU-2024:3195-1SUSE-SU-2024:3194-1SUSE-SU-2024:2947-1

  • kernel AlmaLinux 8 4.18.0-553.22.1.el8_10
  • perf AlmaLinux 8 4.18.0-553.22.1.el8_10
  • bpftool AlmaLinux 8 4.18.0-553.22.1.el8_10
  • kernel-core AlmaLinux 8 4.18.0-553.22.1.el8_10
  • kernel-tools AlmaLinux 8 4.18.0-553.22.1.el8_10
  • python3-perf AlmaLinux 8 4.18.0-553.22.1.el8_10
  • kernel-modules AlmaLinux 8 4.18.0-553.22.1.el8_10
  • kernel-zfcpdump AlmaLinux 8 4.18.0-553.22.1.el8_10

almalinux advisories ALSA-2024:7000ALSA-2024:7001ALSA-2024:5928

  • kernel Rocky Linux 8 4.18.0-553.22.1.el8_10
  • kernel-rt Rocky Linux 8 4.18.0-553.22.1.rt7.363.el8_10

rocky linux advisories RLSA-2024:7000RLSA-2024:7001

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2024-40912 updated cvss 4.7

kernel: wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup()

  • Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more
    affected: workaround, no fix planned “Out of support scope”
  • Red Hat Enterprise Linux 9 kernel-rt, kernel-rt-kvm, kernel-rt-core, kernel-rt-modules, kernel-rt-debug-kvm, kernel-rt-debug-core, +12 more
    affected: workaround, no fix planned “Will not fix”
  • Red Hat Enterprise Linux AppStream (v. 9) rv 5.14.0-427.33.1.el9_4, perf 5.14.0-427.33.1.el9_4, rtla 5.14.0-427.33.1.el9_4, kernel-devel-matched 5.14.0-427.33.1.el9_4, kernel-64k-devel-matched 5.14.0-427.33.1.el9_4, kernel-debug-devel-matched 5.14.0-427.33.1.el9_4, +6 more
    fixed: vendor fix RHSA-2024:5928
  • Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-553.22.1.el8_10, kernel 4.18.0-553.22.1.el8_10, bpftool 4.18.0-553.22.1.el8_10, kernel-core 4.18.0-553.22.1.el8_10, kernel-tools 4.18.0-553.22.1.el8_10, python3-perf 4.18.0-553.22.1.el8_10, +15 more
    fixed: vendor fix RHSA-2024:7000
  • Red Hat Enterprise Linux BaseOS (v. 9) bpftool 7.3.0-427.33.1.el9_4, kernel 5.14.0-427.33.1.el9_4, kernel-64k 5.14.0-427.33.1.el9_4, kernel-core 5.14.0-427.33.1.el9_4, kernel-tools 5.14.0-427.33.1.el9_4, python3-perf 5.14.0-427.33.1.el9_4, +28 more
    fixed: vendor fix RHSA-2024:5928
  • Red Hat Enterprise Linux CRB (v. 8) kernel-debuginfo-common-x86_64 4.18.0-553.22.1.el8_10, kernel-debuginfo-common-aarch64 4.18.0-553.22.1.el8_10, kernel-debuginfo-common-ppc64le 4.18.0-553.22.1.el8_10
    fixed: vendor fix RHSA-2024:7000
  • Red Hat Enterprise Linux CRB (v. 9) libperf 5.14.0-427.33.1.el9_4, kernel-debuginfo-common-s390x 5.14.0-427.33.1.el9_4, kernel-debuginfo-common-x86_64 5.14.0-427.33.1.el9_4, kernel-debuginfo-common-aarch64 5.14.0-427.33.1.el9_4, kernel-debuginfo-common-ppc64le 5.14.0-427.33.1.el9_4
    fixed: vendor fix RHSA-2024:5928
  • Red Hat Enterprise Linux NFV (v. 8) kernel-rt 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-kvm 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-core 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-modules 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-debug-kvm 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-debug-core 4.18.0-553.22.1.rt7.363.el8_10, +4 more
    fixed: vendor fix RHSA-2024:7001
show 4 more
  • Red Hat Enterprise Linux NFV (v. 9) kernel-rt 5.14.0-427.33.1.el9_4, kernel-rt-kvm 5.14.0-427.33.1.el9_4, kernel-rt-core 5.14.0-427.33.1.el9_4, kernel-rt-modules 5.14.0-427.33.1.el9_4, kernel-rt-debug-kvm 5.14.0-427.33.1.el9_4, kernel-rt-debug-core 5.14.0-427.33.1.el9_4, +6 more
    fixed: vendor fix RHSA-2024:5928
  • Red Hat Enterprise Linux RT (v. 8) kernel-rt 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-core 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-modules 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-debug-core 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-debug-modules 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-modules-extra 4.18.0-553.22.1.rt7.363.el8_10, +2 more
    fixed: vendor fix RHSA-2024:7001
  • Red Hat Enterprise Linux RT (v. 9) kernel-rt 5.14.0-427.33.1.el9_4, kernel-rt-core 5.14.0-427.33.1.el9_4, kernel-rt-modules 5.14.0-427.33.1.el9_4, kernel-rt-debug-core 5.14.0-427.33.1.el9_4, kernel-rt-modules-core 5.14.0-427.33.1.el9_4, kernel-rt-debug-modules 5.14.0-427.33.1.el9_4, +4 more
    fixed: vendor fix RHSA-2024:5928
  • Red Hat OpenShift AI 8 rhoai/odh-rhel8-operator v2.13.1-2, rhoai/odh-dashboard-rhel8 v2.13.1-1, rhoai/odh-modelmesh-rhel8 v2.13.1-1, rhoai/odh-operator-bundle v2.13.1-2, rhoai/odh-rhel8-operator v2.14.0-24, rhoai/odh-dashboard-rhel8 v2.14.0-11, +56 more
    fixed: vendor fix RHBA-2024:8413

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

cisa ICSA-24-102-01 updated cvss 4.7

Siemens SIMATIC S7-1500 TM MFP

  • Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem
    affected: mitigation, no fix available

Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf

cisa ICSA-25-226-07 updated

Siemens Third-Party Components in SINEC OS

  • Siemens RUGGEDCOM RST2428P (6GK6242-6PA00) Siemens SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family Siemens SCALANCE XCM-/XRM-/XCH-/XRH-300 family
    not affected

Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
2 y ago

Exploit prediction

0.22% chance of exploitation in the next 30 days, higher than 13% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
NVD 3.1 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Affected products

  • Linux Linux
  • Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem

Classification

Weakness
Technology feeds

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.