CVE-2026-64568: wifi: mac80211: fix unsol_bcast_probe_resp double free on alloc failure
Greg Kroah-Hartman <[email protected]>
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026080559-CVE-2026-64568-2437@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: fix unsol_bcast_probe_resp double free on alloc failure ieee80211_set_unsol_bcast_probe_resp() calls kfree_rcu() on the old template before allocating the replacement. If the kzalloc() then fails, it returns -ENOMEM while link->u.ap.unsol_bcast_probe_resp still points at the object already queued for freeing. A later update or AP teardown 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 ffff88800d06f300 by task exploit/145 ... __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-128 of size 128 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-64568 to this issue. Affected and fixed versions =========================== Issue introduced in 6.7 with commit 3b1c256eb4aedfc71dd97d5951ccff824b41d628 and fixed in 6.12.101 with commit ca27a81cd77b698e5eb586a011bee6800c7ee4bd Issue introduced in 6.7 with commit 3b1c256eb4aedfc71dd97d5951ccff824b41d628 and fixed in 6.18.42 with commit d62b55b7c7dc62887d7fd5648fb38f0bfaef53ae Issue introduced in 6.7 with commit 3b1c256eb4aedfc71dd97d5951ccff824b41d628 and fixed in 7.1.6 with commit 0ace76e410d7f7d813b605825a3e593a79c3958f Issue introduced in 6.7 with commit 3b1c256eb4aedfc71dd97d5951ccff824b41d628 and fixed in 7.2-rc4 with commit 1d067abcd37062426c59ec73dbc4e87a63f33fea 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-64568 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/ca27a81cd77b698e5eb586a011bee6800c7ee4bd https://git.kernel.org/stable/c/d62b55b7c7dc62887d7fd5648fb38f0bfaef53ae https://git.kernel.org/stable/c/0ace76e410d7f7d813b605825a3e593a79c3958f https://git.kernel.org/stable/c/1d067abcd37062426c59ec73dbc4e87a63f33fea