Skip to main content

Linux Kernel EUVDEUVD-2026-48768

| CVE-2026-64424 HIGH
Use After Free (CWE-416)
2026-07-25 Linux GHSA-4m75-5382-c595
7.8
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.0 HIGH

Race condition between concurrent shutdown and TX worker paths warrants AC:H; PR:L reflects minimum local access needed to interact with netpoll shutdown.

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

Primary rating from NVD.

CVSS VectorNVD

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

Lifecycle Timeline

6
Metadata Corrected
Sep 04, 2026 - 16:40 vuln.today
tag: Information Disclosure removed
Analysis Generated
Sep 04, 2026 - 16:10 vuln.today
CVSS changed
Sep 04, 2026 - 16:07 NVD
7.8 (HIGH)
Patch available
Jul 25, 2026 - 11:18 EUVD
CVE Published
Jul 25, 2026 - 08:51 nvd
HIGH 7.8
CVE Published
Jul 25, 2026 - 08:51 cve.org
UNKNOWN (no severity yet)

DescriptionNVD

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

netpoll: fix a use-after-free on shutdown path

There is a use-after-free error on netpoll, which is clearly detected by KASAN.

BUG: KASAN: slab-use-after-free in _raw_spin_lock_irqsave+0x3b/0x80 Read of size 1 at addr ... by task kworker/9:1 Workqueue: events queue_process Call Trace: skb_dequeue+0x1e/0xb0 queue_process+0x2c/0x600 process_scheduled_works+0x4b6/0x850 worker_thread+0x414/0x5a0 Allocated by task 242: __netpoll_setup+0x201/0x4a0 netpoll_setup+0x249/0x550 enabled_store+0x32f/0x380 Freed by task 0: kfree+0x1b7/0x540 rcu_core+0x3f8/0x7a0

The problem happens when there is a pending TX worker running in parallel with the cleanup path.

This is what happens on netpoll shutdown path:

  1. __netpoll_cleanup() is called
  2. set dev->npinfo to NULL
  3. call_rcu() with rcu_cleanup_netpoll_info()

3.1) rcu_cleanup_netpoll_info() tries to cancel all workers with cancel_delayed_work(), but doesn't wait for the worker to finish

  1. and kfree(npinfo);

Because 3.1) doesn't really cancel the work, as the comment says "we can't call cancel_delayed_work_sync here, as we are in softirq", the TX worker can run after 4).

Tl;DR: queue_process() is not an RCU reader, it reaches npinfo through the work item via container_of().

Use disable_delayed_work_sync() to ensure the worker is completely stopped and prevent any future re-arming attempts. Once npinfo is set to NULL, senders will bail out and not queue new work. The disable flag ensures any in-flight re-arming attempts also fail silently.

In the future, we can do the cleanup inline here without needing the npinfo->rcu rcu_head, but that is net-next material.

AnalysisAI

Use-after-free memory corruption in the Linux kernel's netpoll subsystem allows a local attacker or concurrent kernel path to access freed memory during the netpoll shutdown sequence. The flaw exists because cancel_delayed_work() - called from softirq context during __netpoll_cleanup() - does not block until the TX worker finishes, permitting queue_process() to dereference a kfree'd npinfo struct via container_of(). KASAN confirms the UAF; patches are available across multiple stable kernel branches, and no public exploit or KEV listing exists at time of analysis.

Technical ContextAI

The Linux kernel's netpoll framework provides low-level, synchronous network I/O for subsystems like netconsole that must operate in contexts where normal socket I/O is unavailable (e.g., during kernel panics). CWE-416 (Use After Free) is triggered on the shutdown path: __netpoll_cleanup() sets dev->npinfo to NULL and then schedules rcu_cleanup_netpoll_info() via call_rcu(). Inside that RCU callback, cancel_delayed_work() attempts to stop the TX worker (queue_process), but this is a non-synchronous cancellation - it cannot call cancel_delayed_work_sync() because the RCU callback executes in softirq context. Consequently, kfree(npinfo) may execute while queue_process() is still running and holding an implicit reference to npinfo through the work item via container_of(). Since queue_process() is not an RCU reader, it is outside the RCU grace period protection that normally guards npinfo. The fix substitutes disable_delayed_work_sync(), which both prevents re-arming and serializes shutdown with any in-flight worker. Affected CPE: cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*.

RemediationAI

Upgrade to a patched kernel version: 6.12.96 or later on the 6.12.x branch, 6.18.39 or later on the 6.18.x branch, 7.1.4 or later on the 7.1.x branch, or 7.2-rc2 or later on the development branch, applying the appropriate stable-tree commit for your distribution (https://git.kernel.org/stable/c/95ecc5b58042f6b6743b589e6588f1cd7ba336aa and the three sibling commits). If an immediate kernel upgrade is not operationally feasible, disabling the netconsole module and preventing netpoll from being configured eliminates the vulnerable code path entirely (rmmod netconsole; this trades off the ability to capture kernel logs over the network). Systems that have never loaded or configured netpoll are not exposed and require no immediate action. Downstream distribution advisories (RHSA, Debian DSA, Ubuntu USN) should be monitored for packaged kernel updates incorporating these fixes.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
openSUSE Tumbleweed Fixed
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

Share

EUVD-2026-48768 vulnerability details – vuln.today

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