KernelScan.io

CRITICAL Introduced in 2.6.12

ipv6 MLDWork UAF

CVE-2026-72322

CVSS 9.8 / 10.0 NVD

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

KernelScan AI7.5HIGH

01

In the Linux kernel, the following vulnerability has been resolved: ipv6: mcast: Fix potential UAF in MLD delayed work A race condition exists between device teardown and incoming MLD query processing, leading to a Use-After-Free in the MLD delayed work. During device destruction, the primary reference to inet6_dev is dropped, which can drop its refcount to 0. The actual freeing of inet6_dev memory is deferred via RCU. Concurrently, the packet receive path runs under RCU read lock and obtains the inet6_dev pointer. Because the memory is RCU-protected, CPU-0 can safely dereference inet6_dev even if its refcount has hit 0. However, if CPU-0 calls igmp6_event_query() and schedules delayed work, it attempts to acquire a reference using in6_dev_hold(). This increments the refcount from 0 to 1, triggering a "refcount_t: addition on 0" warning. Since the inet6_dev memory is still scheduled to be freed after the RCU grace period, the device is freed while the work is still scheduled. When the work runs, it accesses the freed memory, causing a kernel panic. Fix this by using refcount_inc_not_zero() (via a new helper in6_dev_hold_safe()) to prevent acquiring a reference if the device is already being destroyed. If the refcount is 0, we do not schedule the work.

02

Engine v0.6.0

Risk summary

A use-after-free in the IPv6 MLD multicast subsystem can be triggered by an attacker on the same network link sending MLD packets timed to coincide with network device teardown. The race causes delayed work to run on freed kernel memory, resulting in a kernel panic or potential memory corruption. Any IPv6-enabled device on a shared network segment is at risk; no privileges are required, though the race window is narrow.

Affectednet/ipv6/mcast.c (IPv6 multicast / MLD)

Vulnerability analysis

A race condition exists between network device teardown and incoming MLD (Multicast Listener Discovery) packet processing in the IPv6 multicast subsystem. When a device is being destroyed, its IPv6 interface structure's reference count can reach zero while the memory remains briefly accessible under RCU protection. If an MLD query or report arrives in this window, the receive path schedules delayed work and takes a reference on the already-zeroed structure, which succeeds but does not prevent the memory from being freed after the RCU grace period. When the delayed work later runs, it accesses the freed memory, causing a kernel panic. The fix replaces the unconditional reference increment with a safe variant that refuses to take a reference if the count is already zero, so no work is scheduled on a device that is being torn down. An attacker on the same network link can trigger this by sending MLD packets timed to coincide with device teardown; no special privileges are required, but IPv6 must be active on the target and the race window is narrow.

03

BranchIntroducedFixed inPatch commit
5.102.6.125.10.261f12b63ef26a0
5.152.6.125.15.2120401d6cf7877
6.12.6.126.1.178f03b0a45535d
6.122.6.126.12.97ebbebf6cee95
6.182.6.126.18.409ce741c22df4
6.62.6.126.6.1459815e834f5ff
7.12.6.127.1.50458ba1cda83
mainline2.6.127.29b26518b6896
cip/4.192.6.124.19.325-cip1362aa39f0260d8
cip/4.19-rt2.6.124.19.325-cip136-rt502aa39f0260d8
cip/4.42.6.124.4.302-cip1158040d7c8fc8f
cip/4.4-rt2.6.124.4.302-cip115-rt638040d7c8fc8f
cip/5.102.6.125.10.263-cip76f12b63ef26a0
cip/5.10-rt2.6.125.10.268-cip77-rt34f12b63ef26a0
cip/6.12.6.126.1.182-cip59f03b0a45535d
cip/6.1-rt2.6.126.1.182-cip59-rt31f03b0a45535d
cip/6.122.6.126.12.101-cip29ebbebf6cee95

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.101-cip29
cip/6.1Fixed in 6.1.182-cip59
cip/6.1-rtFixed in 6.1.182-cip59-rt31
cip/5.10Fixed in 5.10.263-cip76
cip/5.10-rtFixed in 5.10.268-cip77-rt34
cip/4.19Fixed in 4.19.325-cip136
cip/4.19-rtFixed in 4.19.325-cip136-rt50
cip/4.4Fixed in 4.4.302-cip115
cip/4.4-rtFixed in 4.4.302-cip115-rt63