KernelScan.io

HIGH Introduced in 3.16

bridge McastMglist UAF

CVE-2026-98026

CVSS 7.0 / 10.0 KernelScan AI

CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

01

In the Linux kernel, the following vulnerability has been resolved: net: bridge: mcast: properly convert mglist to rcu Sashiko reported a bug [1] that br_multicast_del_port_group unlists the port group not using proper rcu helper that preserves the next pointer and after that immediately frees the port group without waiting for rcu grace period. The only rcu walker of mglist is br_multicast_list_adjacent() and it turns out that function has always been buggy because mglist was never properly converted to RCU. Fix it by converting it to rcu and moving its initialization after eth_addr's. Initializing p->next can use RCU_INIT_POINTER because we have a barrier from the hlist_add_head_rcu call later, besides we're initializing an unpublished structure anyway. [1] https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260826014200.362304-1-littleddfu%40gmail.com

02

Engine v0.6.0

Risk summary

A use-after-free vulnerability in the Linux bridge multicast subsystem allows a local attacker with low privileges to potentially achieve arbitrary kernel memory read/write or cause a denial of service. The bug requires a race condition between multicast group deletion and an adjacent database list walk, reachable from a user namespace with CAP_NET_ADMIN.

Affectednet/bridge/br_multicast.c (bridge multicast snooping)

Vulnerability analysis

A bridge multicast group object is removed from a linked list without the RCU-safe deletion helper and then freed immediately, before readers have finished walking the list. Meanwhile, another code path traverses that same list under RCU protection, so it can follow a dangling pointer to memory that has already been freed. The fix converts both insertion and deletion to RCU-safe operations: deletions now preserve the next pointer for in-flight readers, and the free is deferred until the grace period ends so the object stays valid for any ongoing walks. The pointer initialization is also reordered to happen before the new node is published to the list. The vulnerable surface is reachable by any local process that can create or manipulate a bridge interface with multicast snooping — including from within a user namespace where unprivileged users can gain the needed capability — but exploiting the bug requires winning a timing race between group removal and a concurrent list query.

03

BranchIntroducedFixed inPatch commit
6.123.166.12.11198247c8264d2
6.183.166.18.5338ab2a435001
6.63.166.6.15837cb9a81600d
7.23.167.2.7f7bf57e94a5d
mainline3.167.34b772869a1e5
cip/6.123.166.12.111-cip3298247c8264d2

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Affected — no CIP fix yet (latest 6.1.189-cip61)
cip/6.1-rtAffected — no CIP fix yet (latest 6.1.189-cip61-rt32)
cip/5.10Affected — no CIP fix yet (latest 5.10.271-cip78)
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)
cip/4.4Affected — no CIP fix yet (latest 4.4.302-cip115)
cip/4.4-rtAffected — no CIP fix yet (latest 4.4.302-cip115-rt63)