{"id":4650,"date":"2026-09-04T18:46:40","date_gmt":"2026-09-04T10:46:40","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-64574"},"modified":"2026-09-04T18:46:40","modified_gmt":"2026-09-04T10:46:40","slug":"cve-2026-64574","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-64574","title":{"rendered":"CVE-2026-64574 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: tear"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>wifi: mac80211: tear down new links on vif update error path<\/p>\n<p>When ieee80211_vif_update_links() adds new links it allocates a link<br \/>\ncontainer for each and calls ieee80211_link_init() (which registers the<br \/>\nper-link debugfs files with file-&gt;private_data pointing into the container)<br \/>\nand ieee80211_link_setup(). If the subsequent drv_change_vif_links() fails,<br \/>\nthe error path restores the old pointers and jumps to &#8216;free&#8217;, which frees<br \/>\nthe new containers but never removes their debugfs entries or stops the<br \/>\nlinks. The debugfs files survive with file-&gt;private_data dangling at the<br \/>\nfreed container, so a later open()+read() (e.g. link-1\/txpower)<br \/>\ndereferences freed memory in ieee80211_if_read_link(), a use-after-free.<\/p>\n<p>The removal path already dismantles links correctly via<br \/>\nieee80211_tear_down_links(), which removes each link&#8217;s keys and debugfs<br \/>\nentries and calls ieee80211_link_stop(); the add path on the error branch<br \/>\ndoes not. Commit be1ba9ed221f (&#8220;wifi: mac80211: avoid weird state in error<br \/>\npath&#8221;) hardened this same error path for the link-removal case<br \/>\n(new_links == 0) but left the newly-added links&#8217; teardown unaddressed.<\/p>\n<p>drv_change_vif_links() can fail at runtime on MLO drivers (internal<br \/>\nallocation \/ queue \/ firmware command failures).<\/p>\n<p>Remove the new links&#8217; debugfs entries and stop them before freeing.<\/p>\n<p>  BUG: KASAN: slab-use-after-free in ieee80211_if_read_link (net\/mac80211\/debugfs_netdev.c:127)<br \/>\n  Read of size 8 at addr ffff888011290000 by task exploit\/145<br \/>\n  Call Trace:<br \/>\n   &#8230;<br \/>\n   ieee80211_if_read_link (net\/mac80211\/debugfs_netdev.c:127)<br \/>\n   short_proxy_read (fs\/debugfs\/file.c:373)<br \/>\n   vfs_read (fs\/read_write.c:572)<br \/>\n   ksys_read (fs\/read_write.c:716)<br \/>\n   do_syscall_64 (arch\/x86\/entry\/syscall_64.c:94)<br \/>\n   entry_SYSCALL_64_after_hwframe (arch\/x86\/entry\/entry_64.S:121)<br \/>\n  &#8230;<br \/>\n  Oops: general protection fault, probably for non-canonical address 0xdffffc000000000a<br \/>\n  RIP: 0010:ieee80211_if_read_link (net\/mac80211\/debugfs_netdev.c:127)<br \/>\n  Kernel panic &#8211; not syncing: Fatal exception<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>wifi: mac80211: tear down new links on vif update error path<\/p>\n<p>When ieee80211_vif_update_links() adds new links it allocates a link<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-4650","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/4650","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=4650"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4650"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}