KernelScan.io

HIGH Introduced in 6.0

mac80211 LinkSta UAF

CVE-2026-68409

CVSS 8.8 / 10.0 NVD

CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.5HIGH

01

In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: defer link RX stats percpu free to RCU sta_remove_link() frees a removed MLO link's RX stats percpu buffer right away, but defers only the link container to RCU: sta_info_free_link(&alloc->info); kfree_rcu(alloc, rcu_head); The RX fast path reads link_sta under rcu_read_lock and writes the percpu stats. A reader that resolved link_sta before the removal keeps the pointer. The container stays alive from the kfree_rcu, so the read still works. But the percpu block it points to is already freed. This needs uses_rss. That is when pcpu_rx_stats exists. The full STA teardown frees the deflink stats only after synchronize_net(). The link removal path had no such barrier. The race is hard to win in practice, but the free should still wait for RCU. Free the link together with its data from a single RCU callback, so the percpu block is reclaimed only after readers drain.

02

Engine v0.6.0

Risk summary

A use-after-free in the mac80211 WiFi subsystem occurs when a multi-link operation link is removed and its per-CPU receive statistics buffer is freed immediately while the container structure is deferred to RCU. A concurrent receive-path reader can access the already-freed statistics block, leading to memory corruption. Any WiFi peer associated with the affected device can trigger this when multi-link operation and receive-side steering are active.

Affectednet/mac80211/sta_info.c (mac80211)

Vulnerability analysis

When a multi-link operation link is removed from a station, the mac80211 code frees the link's per-CPU receive statistics buffer immediately but defers only the containing structure to RCU reclamation. A receive fast-path reader that resolved the link pointer before removal keeps a valid reference to the container, but the per-CPU statistics block it points to has already been freed, resulting in a use-after-free write to reclaimed memory. The fix consolidates both the per-CPU buffer deallocation and the container free into a single RCU callback, ensuring the statistics block survives until all RCU readers have drained. This is reachable by any WiFi peer associated with the affected device when multi-link operation and receive-side steering are in use; the race window is narrow but the resulting memory corruption is attacker-influenced.

03

BranchIntroducedFixed inPatch commit
6.186.06.18.422aa1789880fa
7.16.07.1.6a03fceae0c65
mainline6.07.2-rc4aa2eb6252518