{"id":17346,"date":"2026-09-05T02:31:01","date_gmt":"2026-09-04T18:31:01","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80842"},"modified":"2026-09-05T02:31:01","modified_gmt":"2026-09-04T18:31:01","slug":"cve-2026-80842","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80842","title":{"rendered":"CVE-2026-80842 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bridge: mcast: f"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: bridge: mcast: fix use-after-free of a master VLAN&#8217;s multicast context<\/p>\n<p>br_multicast_toggle_one_vlan() clears BR_VLFLAG_MCAST_ENABLED under<br \/>\nbr-&gt;multicast_lock before stopping a VLAN&#8217;s multicast context.  That is<br \/>\nthe teardown handshake: lockless readers gate on the flag through<br \/>\nbr_multicast_ctx_should_use() -&gt; br_multicast_ctx_vlan_disabled(), so<br \/>\nonce it is cleared under the lock no reader can arm the context again.<\/p>\n<p>For a master VLAN the handshake never runs.  __vlan_del() clears<br \/>\nBRIDGE_VLAN_INFO_BRENTRY before calling br_vlan_put_master(), so<br \/>\nbr_multicast_toggle_one_vlan(masterv, false) returns early on<br \/>\n!br_vlan_is_brentry(vlan): the flag stays set and br-&gt;multicast_lock is<br \/>\nnever taken.  br_vlan_put_master() then drains the context in<br \/>\nbr_multicast_ctx_deinit() and frees the VLAN through call_rcu(), while a<br \/>\nreader still inside rcu_read_lock() sees the context as enabled and<br \/>\nre-arms it.  The port and port-VLAN branch of the function has no<br \/>\nbr_vlan_is_brentry() test and flips the flag under br-&gt;multicast_lock,<br \/>\nso it is not affected.<\/p>\n<p>The reader is the bridge transmit path.  For a master VLAN<br \/>\nbr_multicast_rcv() selects brmctx = &amp;vlan-&gt;br_mcast_ctx with<br \/>\npmctx = NULL, so IGMP sent to the bridge device re-arms the context&#8217;s<br \/>\ntimers after br_multicast_ctx_deinit() has already stopped them.<\/p>\n<p>  BUG: KASAN: slab-use-after-free in detach_if_pending+0x412\/0x4a0<br \/>\n  Write of size 8 at addr ffff88810ac39918 by task brmc\/601<br \/>\n   __mod_timer+0x51a\/0xc50<br \/>\n   br_multicast_host_join+0x25b\/0x390<br \/>\n   __br_multicast_add_group+0x468\/0x530<br \/>\n   br_ip4_multicast_add_group+0x1a0\/0x260<br \/>\n   br_multicast_rcv+0x2cda\/0x61e0<br \/>\n   br_dev_xmit+0x6c4\/0x1540<br \/>\n  Allocated by task 610:<br \/>\n   br_vlan_add+0x111\/0xb40<br \/>\n   br_vlan_info+0x370\/0x3e0<br \/>\n  Freed by task 0:<br \/>\n   kfree+0x1a7\/0x4f0<br \/>\n   rcu_core+0x7dc\/0x10a0<\/p>\n<p>Only test br_vlan_is_brentry() when enabling, like the<br \/>\nbr_multicast_ctx_vlan_global_disabled() test next to it.  Disabling then<br \/>\nalways clears BR_VLFLAG_MCAST_ENABLED under br-&gt;multicast_lock before<br \/>\nbr_multicast_ctx_deinit() drains the context.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: bridge: mcast: fix use-after-free of a master VLAN&#8217;s multicast context<\/p>\n<p>br_multicast_toggle_one_vlan() clears BR_VLFLAG_MCAST_<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-17346","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/17346","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=17346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17346"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}