CVE-2026-80842

Source
https://cve.org/CVERecord?id=CVE-2026-80842
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80842.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-80842
Downstream
Published
2026-09-04T15:54:52.459Z
Modified
2026-09-06T03:46:53.454594109Z
Summary
net: bridge: mcast: fix use-after-free of a master VLAN's multicast context
Details

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

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

brmulticasttoggleonevlan() clears BRVLFLAGMCASTENABLED under br->multicastlock before stopping a VLAN's multicast context. That is the teardown handshake: lockless readers gate on the flag through brmulticastctxshoulduse() -> brmulticastctxvlandisabled(), so once it is cleared under the lock no reader can arm the context again.

For a master VLAN the handshake never runs. __vlandel() clears BRIDGEVLANINFOBRENTRY before calling brvlanputmaster(), so brmulticasttoggleonevlan(masterv, false) returns early on !brvlanisbrentry(vlan): the flag stays set and br->multicastlock is never taken. brvlanputmaster() then drains the context in brmulticastctxdeinit() and frees the VLAN through callrcu(), while a reader still inside rcureadlock() sees the context as enabled and re-arms it. The port and port-VLAN branch of the function has no brvlanisbrentry() test and flips the flag under br->multicastlock, so it is not affected.

The reader is the bridge transmit path. For a master VLAN brmulticastrcv() selects brmctx = &vlan->brmcastctx with pmctx = NULL, so IGMP sent to the bridge device re-arms the context's timers after brmulticastctx_deinit() has already stopped them.

BUG: KASAN: slab-use-after-free in detachifpending+0x412/0x4a0 Write of size 8 at addr ffff88810ac39918 by task brmc/601 __modtimer+0x51a/0xc50 brmulticasthostjoin+0x25b/0x390 __brmulticastaddgroup+0x468/0x530 brip4multicastaddgroup+0x1a0/0x260 brmulticastrcv+0x2cda/0x61e0 brdevxmit+0x6c4/0x1540 Allocated by task 610: brvlanadd+0x111/0xb40 brvlaninfo+0x370/0x3e0 Freed by task 0: kfree+0x1a7/0x4f0 rcucore+0x7dc/0x10a0

Only test brvlanisbrentry() when enabling, like the brmulticastctxvlanglobaldisabled() test next to it. Disabling then always clears BRVLFLAGMCASTENABLED under br->multicastlock before brmulticastctx_deinit() drains the context.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80842.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
7b54aaaf53cb784411426c64482af0435f7c845e
Fixed
3afaaee2f972aec9059110953adb62fa3cf5c4bd
Fixed
22226a2c3b90f15b0925f1464470d3baa6c5677e
Fixed
7c54fd8cfbcf371a5ef50db5c53fe6e85fb76686
Fixed
3a0ad4fcdfa0b7dba1876de14a12cb65c8b5ca50
Fixed
c069f29da72324697aa4b7cab5b3647a7d24a575
Fixed
3f4752996735e0628af559aa8da1d872c2fac13b
Fixed
57f94d3f4dee8b54d63cefddf1112be4656ef9e6
Fixed
50e5c6605cc9c2dd57bd2d1b3459674d19738983

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80842.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.15.0
Fixed
5.15.220
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.187
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.156
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.108
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.49
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.1.13
Type
ECOSYSTEM
Events
Introduced
7.2.0
Fixed
7.2.3

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80842.json"