CVE-2026-64570: wifi: mac80211: fix fils_discovery double free on alloc failure
Greg Kroah-Hartman <[email protected]>
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026080559-CVE-2026-64570-8771@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: fix fils_discovery double free on alloc failure ieee80211_set_fils_discovery() calls kfree_rcu() on the old template before allocating the replacement. If the kzalloc() then fails, it returns -ENOMEM while link->u.ap.fils_discovery still points at the object already queued for freeing. A later update or AP teardown (ieee80211_stop_ap()) re-queues that same rcu_head; the second free is caught by KASAN when the RCU sheaf is processed in softirq: BUG: KASAN: double-free in rcu_free_sheaf (mm/slub.c:5850) Free of addr ffff88800c065280 by task swapper/0/0 ... __rcu_free_sheaf_prepare (mm/slub.c:2634 mm/slub.c:2940) rcu_free_sheaf (mm/slub.c:5850) rcu_core (kernel/rcu/tree.c:2617 kernel/rcu/tree.c:2869) handle_softirqs (kernel/softirq.c:622) The buggy address belongs to the cache kmalloc-96 of size 96 Queue the old object for kfree_rcu() only after the new one is published, matching ieee80211_set_probe_resp() and ieee80211_set_s1g_short_beacon(). The Linux kernel CVE team has assigned CVE-2026-64570 to this issue. Affected and fixed versions =========================== Issue introduced in 6.7 with commit 3b1c256eb4aedfc71dd97d5951ccff824b41d628 and fixed in 6.12.101 with commit e2c55079155a953db669ca1986a985fa286bad95 Issue introduced in 6.7 with commit 3b1c256eb4aedfc71dd97d5951ccff824b41d628 and fixed in 6.18.42 with commit 5baaa1042f71dd4b8e418f2cdd516808702d229b Issue introduced in 6.7 with commit 3b1c256eb4aedfc71dd97d5951ccff824b41d628 and fixed in 7.1.6 with commit 1981fba71797ec95e6755fb882cad88899a2a84f Issue introduced in 6.7 with commit 3b1c256eb4aedfc71dd97d5951ccff824b41d628 and fixed in 7.2-rc4 with commit 286e52a799fa158bdbd77da1426c4d93f9a6e7ad Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-64570 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: net/mac80211/cfg.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/e2c55079155a953db669ca1986a985fa286bad95 https://git.kernel.org/stable/c/5baaa1042f71dd4b8e418f2cdd516808702d229b https://git.kernel.org/stable/c/1981fba71797ec95e6755fb882cad88899a2a84f https://git.kernel.org/stable/c/286e52a799fa158bdbd77da1426c4d93f9a6e7ad