Vulnerability · Published Aug 15, 2026 · Assigned by Linux

CVE-2026-74489wifi: mac80211: fix tid_tx use-after-free on BA session stop

High 8.8

In plain English

A high-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.3% (higher than 28% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)8.8High
Exploit odds (30 days)0.3%top 72.3% 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 tid_tx use-after-free on BA session stop ieee80211_stop_tx_ba_cb() hands tid_tx to kfree_rcu() through ieee80211_remove_tid_tx(), and then reads tid_tx->ndp after dropping sta->lock: ieee80211_remove_tid_tx(sta, tid); /* kfree_rcu(tid_tx, rcu_head) */ ... spin_unlock_bh(&sta->lock); if (start_txq) ieee80211_agg_start_txq(sta, tid, false); if (send_delba) ieee80211_send_delba(..., tid_tx->ndp); That read is not covered by an RCU read-side critical section, and it runs in preemptible process context: both callers hold the wiphy mutex, reaching it either from the ieee80211_ba_session_work() wiphy work or from ieee80211_sta_tear_down_BA_sessions() during station teardown. Softirqs can run in that window too, both from the local_bh_enable() that ends ieee80211_agg_start_txq() and from any interrupt exit, so the RCU callback can free tid_tx before the read. Driving the function from a test module with the grace period forced into that window, KASAN reports the read, and the free arrives on the ordinary RCU softirq path: BUG: KASAN: slab-use-after-free in ieee80211_stop_tx_ba_cb+0x3cd/0x400 Read of size 1 at addr ffff888002b9f52e by task kworker/0:1/10 [...] Freed by task 57: __kasan_slab_free+0x47/0x70 __rcu_free_sheaf_prepare+0x70/0x250 rcu_free_sheaf_nobarn+0x18/0x40 rcu_core+0x426/0x1310 handle_softirqs+0x144/0x590 __irq_exit_rcu+0xea/0x150 irq_exit_rcu+0x9/0x20 sysvec_apic_timer_interrupt+0x6b/0x80 asm_sysvec_apic_timer_interrupt+0x1a/0x20 send_delba is only set when tx_stop is set, which happens for AGG_STOP_LOCAL_REQUEST alone, so this is reached on local teardown - session idle timeout, PTK rekey, suspend, HW reconfig - and not from a peer's DELBA. Read ndp into a local before the session is freed, while sta->lock is still held. tid_tx->ndp has a single writer, in ieee80211_tx_ba_session_handle_start(), which cannot run concurrently here: both paths are serialised by the wiphy mutex, and the session is already marked HT_AGG_STATE_STOPPING at this point. tid_tx->ndp is also the only tid_tx dereference left after ieee80211_remove_tid_tx() in this function. [move/change the comment a bit to be more general not just on ndp, initialize ndp directly]

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:14linux7.1.8-1DEBIAN-CVE-2026-74489
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-aws-6.17no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-azure-6.14no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-azure-6.17no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-azure-fde-6.17no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-74489
Ubuntu:24.04:LTSlinux-riscv-6.17no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-74489
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-74489

Affected products (as reported)

VendorProductVersions
Linux Linux 98acd4c1d9f7dc9c426e840c16e81b57315ff84b – before 09fc36eec7841cdf732f4db39855e0c73bd075cc98acd4c1d9f7dc9c426e840c16e81b57315ff84b – before 2f067f5a450ea07efd249142a11d940a068fe29c
Linux Linux 7.1

References