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 4) 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.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux-6.12Upgrade linux | Jul 28, 2026 | Jul 28, 2026 |
| Redhat_linux | — | No solution exists | Jul 29, 2026 | Jul 25, 2026 |
| Ubuntu | — | Upgrade linux-image-oem-7.0Upgrade linux-image-realtime-7.0Upgrade linux-image-generic-hwe-26.04Upgrade linux-image-nvidia-bosUpgrade linux-image-gcp-64kUpgrade linux-image-aws-64k-7.0Upgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-oem-26.04aUpgrade linux-image-nvidiaUpgrade linux-image-nvidia-7.0Upgrade linux-image-virtual-hwe-26.04Upgrade linux-image-gke-64kUpgrade linux-image-oem-26.04Upgrade linux-image-nvidia-bos-64kUpgrade linux-image-aws-7.0Upgrade linux-image-raspi-realtime-7.0Upgrade linux-image-7.0.0-2018-nvidia-bos-64kUpgrade linux-image-generic-64kUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-7.0.0-31-realtime-64kUpgrade linux-image-7.0.0-1012-awsUpgrade linux-image-7.0.0-31-realtimeUpgrade linux-image-gke-7.0Upgrade linux-image-awsUpgrade linux-image-ibmUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-gke-64k-7.0Upgrade linux-image-7.0.0-1018-nvidiaUpgrade linux-image-raspiUpgrade linux-image-7.0.0-1018-nvidia-64kUpgrade linux-image-ibm-7.0Upgrade linux-image-7.0.0-1012-aws-64kUpgrade linux-image-nvidia-64k-7.0Upgrade linux-image-gcp-7.0Upgrade linux-image-gkeUpgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-realtime-hwe-26.04Upgrade linux-image-realtimeUpgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-7.0.0-31-generic-64kUpgrade linux-image-generic-7.0Upgrade linux-image-realtime-64kUpgrade linux-image-aws-64kUpgrade linux-image-raspi-realtimeUpgrade linux-image-raspi-7.0Upgrade linux-image-7.0.0-1013-ibmUpgrade linux-image-virtual-7.0Upgrade linux-image-oem-26.04bUpgrade linux-image-gcpUpgrade linux-image-7.0.0-1019-raspi-realtimeUpgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-7.0.0-1013-oemUpgrade linux-image-realtime-64k-7.0Upgrade linux-image-genericUpgrade linux-image-7.0.0-2018-nvidia-bosUpgrade linux-image-gke-hwe-26.04Upgrade linux-image-7.0.0-1019-raspiUpgrade linux-image-nvidia-bos-7.0Upgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-7.0.0-1006-gkeUpgrade linux-image-generic-64k-7.0Upgrade linux-image-7.0.0-31-genericUpgrade linux-image-virtualUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-7.0.0-1006-gke-64kUpgrade linux-image-nvidia-64k | Sep 14, 2026 | Sep 7, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 31, 2026 | Jul 25, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub