Description
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.
Published: 2026-08-15
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel contains a race condition between device teardown (inetdev_destroy) and IGMP query processing (igmp_rcv). When a network device is being torn down, its reference count can drop to zero while the memory is still being held for an RCU‑deferred free. Concurrently, an incoming IGMP query may trigger igmp_gq_start_timer, which attempts to hold a reference to the same device. Because the reference count is already zero, this action causes a use‑after‑free flaw, classified as CWE‑825, leading the timer callback to access freed memory and trigger a kernel panic. The resulting denial of service manifests as an unexpected reboot or crash, potentially causing data loss or disruption during recovery.

Affected Systems

All Linux kernel implementations that have not applied the in_dev_hold_safe patch are affected. Any system running a kernel version prior to the patch is at risk, regardless of distribution, as the vulnerability exists in the core kernel source and is not limited to a specific release.

Risk and Exploitability

The CVSS score of 9.8 reflects critical severity. The EPSS score of &lt; 1% indicates a very low likelihood of exploitation in the wild, and the vulnerability is not listed in CISA’s KEV catalog. The likely attack vector is crafted IGMP packets sent to an interface whose device is concurrently being destroyed, which is inferred from the race condition described. Successful exploitation requires sufficient network access to send the offending IGMP query and a timing window during device tear‑down, leading to a kernel panic and denial of service. Because the flaw deals with kernel memory, a local or remote attacker with packet‑sending privileges could trigger it, but the constraints reduce practical exploitation probability.

Generated by OpenCVE AI on August 22, 2026 at 08:55 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the in_dev_hold_safe patch.
  • If an upgrade is not immediately possible, block IGMP (protocol 2) traffic on affected interfaces with firewall rules to prevent IGMP queries from reaching the kernel.
  • Monitor kernel logs for "refcount_t: addition on 0" messages or kernel panics, and apply the patch as soon as it is available.

Generated by OpenCVE AI on August 22, 2026 at 08:55 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 02 Sep 2026 13:00:00 +0000


Sat, 22 Aug 2026 07:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 19 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

threat_severity

Important


Mon, 17 Aug 2026 20:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 17 Aug 2026 17:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Sat, 15 Aug 2026 10:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description 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.
Title ipv4: igmp: Fix potential UAF in igmp_gq_start_timer()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-02T12:49:45.779Z

Reserved: 2026-08-09T03:40:39.919Z

Link: CVE-2026-72323

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:22:05.333

Modified: 2026-09-02T13:18:07.997

Link: CVE-2026-72323

cve-icon Redhat

Severity : Important

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72323 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T09:00:10Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference