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

ipv6: prevent in6_dev_get() from resurrecting inet6_dev

in6_dev_get() reads dev->ip6_ptr under RCU and then unconditionally
increments its refcount. Device teardown can clear the pointer and drop
the last reference between these operations. The increment then
resurrects an object whose RCU free has already been queued, so callers
can use it after it is freed.

Use refcount_inc_not_zero() and return NULL when the object has already
reached zero. RCU keeps the memory accessible through the attempted
reference acquisition, and a successful increment pins the object for
the caller.

An independent run on the exact unpatched 6f5156d7a31a (v7.2-rc3)
kernel reproduced the invalid reference acquisition as UID 1000:

refcount_t: addition on 0; use-after-free.
ip6_mc_source+0xef4/0x17e0

It was followed by the corresponding reference underflow in
ip6_mc_source(). The supplied trace from the same unpatched revision
additionally shows the access after the RCU read-side section ends:

BUG: KASAN: slab-use-after-free in mutex_lock+0x76/0xe0
Write of size 8 at addr ffff888015b50240 by task poc/1219

Bug found and triaged by OpenAI Security Research and
validated by Trail of Bits.
Published: 2026-08-22
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

An attacker who can manipulate IPv6 socket operations in a Linux kernel may trigger a use‑after‑free in the function in6_dev_get(). The code path reads an ipv6 device pointer under RCU and then unconditionally increments its reference counter even if the object has already been freed. This resurrects a stale object, allowing callers to use memory that has already been released, resulting in arbitrary memory corruption. The bug can cause KASAN reports of slab‑use‑after‑free and may be leveraged to crash the kernel or execute arbitrary code with kernel privileges.

Affected Systems

The affected product is the Linux kernel. The vulnerability exists in releases that include the uncorrected code path before the patch that replaces refcount_inc() with refcount_inc_not_zero() in in6_dev_get(). It was reproduced against the unpatched 7.2‑rc3 kernel. All kernels containing this legacy implementation are considered vulnerable until the fix is applied.

Risk and Exploitability

The CVSS score is not provided, and the Exploit Prediction Scoring System score is unavailable; the assessment relies on the inherent severity of a use‑after‑free. This flaw can lead to kernel crashes or arbitrary code execution, giving it high impact potential. The attack requires manipulating the IPv6 subsystem and timing a device teardown, so exploitation is likely non‑trivial, yet the presence of KASAN traces indicates the vulnerability is correctly identified. The vulnerability is not listed in the CISA KEV catalog, suggesting no publicly observed exploits exist as of this analysis.

Generated by OpenCVE AI on August 22, 2026 at 18:38 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to a Linux kernel version that includes the fixed in6_dev_get implementation; the patch is available in commit history linked in the provided references.
  • If an upgrade is not immediately possible, disable IPv6 on the affected hosts or block external IPv6 traffic that could trigger the vulnerable code path.
  • Apply any vendor‑supplied backported patches or restrict root privileges for tools that invoke network device APIs that call in6_dev_get.

Generated by OpenCVE AI on August 22, 2026 at 18:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 19:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

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

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ipv6: prevent in6_dev_get() from resurrecting inet6_dev in6_dev_get() reads dev->ip6_ptr under RCU and then unconditionally increments its refcount. Device teardown can clear the pointer and drop the last reference between these operations. The increment then resurrects an object whose RCU free has already been queued, so callers can use it after it is freed. Use refcount_inc_not_zero() and return NULL when the object has already reached zero. RCU keeps the memory accessible through the attempted reference acquisition, and a successful increment pins the object for the caller. An independent run on the exact unpatched 6f5156d7a31a (v7.2-rc3) kernel reproduced the invalid reference acquisition as UID 1000: refcount_t: addition on 0; use-after-free. ip6_mc_source+0xef4/0x17e0 It was followed by the corresponding reference underflow in ip6_mc_source(). The supplied trace from the same unpatched revision additionally shows the access after the RCU read-side section ends: BUG: KASAN: slab-use-after-free in mutex_lock+0x76/0xe0 Write of size 8 at addr ffff888015b50240 by task poc/1219 Bug found and triaged by OpenAI Security Research and validated by Trail of Bits.
Title ipv6: prevent in6_dev_get() from resurrecting inet6_dev
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-08-22T15:32:11.596Z

Reserved: 2026-08-15T05:44:03.921Z

Link: CVE-2026-74630

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-22T16:16:35.943

Modified: 2026-08-22T16:16:35.943

Link: CVE-2026-74630

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T18:45:04Z

Weaknesses