CVE-2026-80842

CVE-2026-80842

published September 4, 2026

CVSS
—
EPSS
0%
Percentile
6.9
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

net: bridge: mcast: fix use-after-free of a master VLAN's multicast context

br_multicast_toggle_one_vlan() clears BR_VLFLAG_MCAST_ENABLED under

br->multicast_lock before stopping a VLAN's multicast context. That is

the teardown handshake: lockless readers gate on the flag through

br_multicast_ctx_should_use() -> br_multicast_ctx_vlan_disabled(), so

once it is cleared under the lock no reader can arm the context again.

For a master VLAN the handshake never runs. __vlan_del() clears

BRIDGE_VLAN_INFO_BRENTRY before calling br_vlan_put_master(), so

br_multicast_toggle_one_vlan(masterv, false) returns early on

!br_vlan_is_brentry(vlan): the flag stays set and br->multicast_lock is

never taken. br_vlan_put_master() then drains the context in

br_multicast_ctx_deinit() and frees the VLAN through call_rcu(), while a

reader still inside rcu_read_lock() sees the context as enabled and

re-arms it. The port and port-VLAN branch of the function has no

br_vlan_is_brentry() test and flips the flag under br->multicast_lock,

so it is not affected.

The reader is the bridge transmit path. For a master VLAN

br_multicast_rcv() selects brmctx = &vlan->br_mcast_ctx with

pmctx = NULL, so IGMP sent to the bridge device re-arms the context's

timers after br_multicast_ctx_deinit() has already stopped them.

BUG: KASAN: slab-use-after-free in detach_if_pending+0x412/0x4a0

Write of size 8 at addr ffff88810ac39918 by task brmc/601

__mod_timer+0x51a/0xc50

br_multicast_host_join+0x25b/0x390

__br_multicast_add_group+0x468/0x530

br_ip4_multicast_add_group+0x1a0/0x260

br_multicast_rcv+0x2cda/0x61e0

br_dev_xmit+0x6c4/0x1540

Allocated by task 610:

br_vlan_add+0x111/0xb40

br_vlan_info+0x370/0x3e0

Freed by task 0:

kfree+0x1a7/0x4f0

rcu_core+0x7dc/0x10a0

Only test br_vlan_is_brentry() when enabling, like the

br_multicast_ctx_vlan_global_disabled() test next to it. Disabling then

always clears BR_VLFLAG_MCAST_ENABLED under br->multicast_lock before

br_multicast_ctx_deinit() drains the context.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00177 · 6.9th percentile
Published
2026-09-04T20:18Z
References (8)
EPSS history
Timeline
  • 06 SEP 03:33Z
    EPSS moved — → 0%
    epss
  • 04 SEP 15:54Z
    net: bridge: mcast: fix use-after-free of a master VLAN's multicast context
    cvelistv5