{"id":7482,"date":"2026-09-04T18:49:34","date_gmt":"2026-09-04T10:49:34","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74489"},"modified":"2026-09-04T18:49:34","modified_gmt":"2026-09-04T10:49:34","slug":"cve-2026-74489","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74489","title":{"rendered":"CVE-2026-74489 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: fix t"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>wifi: mac80211: fix tid_tx use-after-free on BA session stop<\/p>\n<p>ieee80211_stop_tx_ba_cb() hands tid_tx to kfree_rcu() through<br \/>\nieee80211_remove_tid_tx(), and then reads tid_tx-&gt;ndp after dropping<br \/>\nsta-&gt;lock:<\/p>\n<p>\tieee80211_remove_tid_tx(sta, tid);\t\/* kfree_rcu(tid_tx, rcu_head) *\/<br \/>\n\t&#8230;<br \/>\n\tspin_unlock_bh(&amp;sta-&gt;lock);<\/p>\n<p>\tif (start_txq)<br \/>\n\t\tieee80211_agg_start_txq(sta, tid, false);<\/p>\n<p>\tif (send_delba)<br \/>\n\t\tieee80211_send_delba(&#8230;, tid_tx-&gt;ndp);<\/p>\n<p>That read is not covered by an RCU read-side critical section, and it runs<br \/>\nin preemptible process context: both callers hold the wiphy mutex, reaching<br \/>\nit either from the ieee80211_ba_session_work() wiphy work or from<br \/>\nieee80211_sta_tear_down_BA_sessions() during station teardown.<br \/>\nSoftirqs can run in that window too, both from the local_bh_enable() that<br \/>\nends ieee80211_agg_start_txq() and from any interrupt exit, so the RCU<br \/>\ncallback can free tid_tx before the read.<\/p>\n<p>Driving the function from a test module with the grace period forced into<br \/>\nthat window, KASAN reports the read, and the free arrives on the ordinary<br \/>\nRCU softirq path:<\/p>\n<p>  BUG: KASAN: slab-use-after-free in ieee80211_stop_tx_ba_cb+0x3cd\/0x400<br \/>\n  Read of size 1 at addr ffff888002b9f52e by task kworker\/0:1\/10<br \/>\n  [&#8230;]<br \/>\n  Freed by task 57:<br \/>\n   __kasan_slab_free+0x47\/0x70<br \/>\n   __rcu_free_sheaf_prepare+0x70\/0x250<br \/>\n   rcu_free_sheaf_nobarn+0x18\/0x40<br \/>\n   rcu_core+0x426\/0x1310<br \/>\n   handle_softirqs+0x144\/0x590<br \/>\n   __irq_exit_rcu+0xea\/0x150<br \/>\n   irq_exit_rcu+0x9\/0x20<br \/>\n   sysvec_apic_timer_interrupt+0x6b\/0x80<br \/>\n   asm_sysvec_apic_timer_interrupt+0x1a\/0x20<\/p>\n<p>send_delba is only set when tx_stop is set, which happens for<br \/>\nAGG_STOP_LOCAL_REQUEST alone, so this is reached on local teardown &#8211;<br \/>\nsession idle timeout, PTK rekey, suspend, HW reconfig &#8211; and not from a<br \/>\npeer&#8217;s DELBA.<\/p>\n<p>Read ndp into a local before the session is freed, while sta-&gt;lock is still<br \/>\nheld. tid_tx-&gt;ndp has a single writer, in<br \/>\nieee80211_tx_ba_session_handle_start(), which cannot run concurrently here:<br \/>\nboth paths are serialised by the wiphy mutex, and the session is already<br \/>\nmarked HT_AGG_STATE_STOPPING at this point. tid_tx-&gt;ndp is also the only<br \/>\ntid_tx dereference left after ieee80211_remove_tid_tx() in this function.<\/p>\n<p>[move\/change the comment a bit to be more general not just on ndp,<br \/>\n initialize ndp directly]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>wifi: mac80211: fix tid_tx use-after-free on BA session stop<\/p>\n<p>ieee80211_stop_tx_ba_cb() hands tid_tx to kfree_rcu() through<br \/>\nieee802<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-7482","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/7482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}