Skip to main content

Linux Kernel CVE-2026-72323

| EUVDEUVD-2026-59222 CRITICAL
2026-08-15 Linux GHSA-ghfh-7xfw-63jp
9.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
5.3 MEDIUM

IGMP queries are link-local (AV:A); success needs winning a teardown race (AC:H); no auth needed (PR:N); observed impact is a kernel panic, so A:H with C:N/I:N.

3.1 AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:A/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Red Hat
7.0 HIGH
qualitative

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 17, 2026 - 08:27 vuln.today
CVSS changed
Aug 17, 2026 - 06:22 NVD
9.8 (CRITICAL)
Patch available
Aug 15, 2026 - 07:20 EUVD
CVE Published
Aug 15, 2026 - 05:55 cve.org
CRITICAL 9.8
CVE Published
Aug 15, 2026 - 05:55 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

ipv4: igmp: Fix potential UAF in igmp_gq_start_timer()

A race condition exists between device teardown (inetdev_destroy) and incoming IGMP query processing (igmp_rcv), leading to a Use-After-Free in the IGMP timer callback.

During device destruction, inetdev_destroy() drops the primary reference to in_device, which can drop its refcount to 0. The actual freeing of in_device memory is deferred via RCU (using call_rcu()).

Concurrently, igmp_rcv() runs under RCU read lock and obtains the in_device pointer. Because the memory is RCU-protected, CPU-0 can safely dereference in_device even if its refcount has hit 0.

However, if CPU-0 calls igmp_gq_start_timer() and re-arms the timer, it attempts to acquire a reference using in_dev_hold(). This increments the refcount from 0 to 1, triggering a "refcount_t: addition on 0" warning. Since the in_device memory is still scheduled to be freed after the RCU grace period (as the free callback does not check the refcount again), the device is freed while the timer is still armed. When the timer expires, it accesses the freed memory, causing a kernel panic.

Fix this by using refcount_inc_not_zero() (via a new helper in_dev_hold_safe()) to prevent acquiring a reference if the device is already being destroyed. If the refcount is 0, we do not arm the timer.

A similar issue in IPv6 MLD is fixed in a subsequent patch.

AnalysisAI

Kernel panic (use-after-free) in the Linux kernel IPv4 IGMP stack allows a network-adjacent attacker to crash the host by racing an inbound IGMP membership query against network-device teardown. The flaw lives in igmp_gq_start_timer(), where in_dev_hold() re-arms the general-query timer on an in_device whose refcount has already dropped to zero during inetdev_destroy(), so the RCU-freed structure is accessed when the timer later fires. The upstream fix is merged and shipped across stable branches; there is no public exploit identified at time of analysis and EPSS is low (0.21%, 11th percentile).

Technical ContextAI

The affected subsystem is the Linux kernel's IPv4 IGMP (Internet Group Management Protocol) multicast implementation, specifically the per-interface in_device structure that tracks multicast state and is protected by RCU with refcount_t reference counting. The root cause is a classic use-after-free driven by a race (CWE-416 combined with CWE-362): inetdev_destroy() drops the primary reference, taking the refcount to 0 and scheduling the free via call_rcu(), while a concurrent igmp_rcv() running under rcu_read_lock() still holds a valid pointer to that same in_device. When the query handler calls igmp_gq_start_timer() and invokes in_dev_hold(), refcount_inc() bumps the counter from 0 to 1 (emitting the 'refcount_t: addition on 0' warning) and re-arms the general-query timer; because the RCU free callback does not re-check the refcount, the memory is released after the grace period while the timer is still armed, and timer expiry dereferences freed memory. The fix introduces in_dev_hold_safe() using refcount_inc_not_zero(), so the timer is simply not armed if the device is already being destroyed.

RemediationAI

Vendor-released patch: update to a fixed kernel - 6.6.145, 6.12.97, 6.18.40, 7.1.5, or mainline 7.2-rc3, or the distro-backported equivalent containing the in_dev_hold_safe()/refcount_inc_not_zero() change (stable commits 40a1e998cb26, 165258303357, 75e984fe0cb9, 8d4394ffa405, 7b19c0f81ed1 at git.kernel.org). For most fleets, applying the vendor kernel errata and rebooting is the correct action. Where immediate patching is not possible, the practical compensating control is to reduce exposure to the trigger: filter or drop inbound IGMP queries at the edge/switch (IGMP snooping/querier restrictions so only trusted routers send queries) to shrink the adjacent attack surface, and avoid unnecessary rapid interface teardown/bring-up cycling on exposed hosts - noting the trade-off that constraining IGMP can disrupt legitimate multicast group management on the segment. There is no reliable pure-userspace workaround because the race is in kernel timer handling; patching remains the only complete fix.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

CVE-2026-72323 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy