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

net: flush skb_defer_nodes in dev_cpu_dead()

When a CPU goes offline, dev_cpu_dead() drains its softnet queues
(completion_queue, output_queue, poll_list, process_queue, and
input_pkt_queue), but leaves net_hotdata.skb_defer_nodes untouched.

If oldcpu goes offline while holding pending skbs in its
skb_defer_nodes lists (e.g. below the sysctl_skb_defer_max >> 1 IPI
threshold, or if the IPI races with CPU teardown), those skbs remain
stranded until oldcpu is brought back online. If any of these skbs
hold page_pool fragments, page_pool_destroy() will stall indefinitely
waiting for inflight pages to be returned when a netdev or driver is
torn down while oldcpu is offline.

Additionally, if smp_call_function_single_async() fails in
kick_defer_list_purge() because the target CPU went offline, reset
defer_ipi_scheduled to 0 so future IPI kicks are not blocked when the
CPU comes back online.

Also, if oldcpu was the last online CPU on its NUMA node, drain that
node's slot across all CPUs so no skbs deferred from that node remain
stranded on idle remote CPUs (or if the node itself is subsequently
offlined).

Finally, in skb_attempt_defer_free(), re-check cpu_online(cpu) and
whether the caller migrated CPUs after llist_add(), flushing the node
list if so, to close the preemption TOCTOU race against CPU/node
teardown.
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service (kernel hang)
Action: Apply Patch
AI Analysis

Impact

The vulnerability arises when a CPU is taken offline. Dev_cpu_dead() drains the kernel’s softnet queues but fails to flush skb_defer_nodes. If the list contains pending skbs, the packets remain stranded until the CPU is brought back online, and if those skbs reference page_pool fragments, page_pool_destroy() can stall indefinitely, potentially leading to a system hang. This flaw primarily allows a denial of service by exhausting kernel resources and stalling critical subsystem shutdown.

Affected Systems

All Linux kernel builds that do not include the recent commit adding special handling of skb_defer_nodes in dev_cpu_dead() are affected. The vulnerability does not depend on distribution or kernel configuration beyond CPU hot‑plug; therefore any system running a kernel prior to the commit present in the provided Git URLs is potentially impacted. No specific version list is provided, so users should check if the referenced commit is present in their running kernel.

Risk and Exploitability

The EPSS score is not available and the flaw is not listed in the CISA KEV catalog. Based on the description, it is inferred that an attacker with the ability to force a CPU offline—by invoking kernel hot‑plug interfaces or by generating traffic that stresses the skb_defer_nodes threshold—can trigger the stall. Because the exploit requires privileged or local access to the host to cause a CPU offline or race, the attack surface is limited to systems with enabled CPU hot‑plug and user privileges that can manipulate hot‑plug state. Nevertheless, the risk of a complete system freeze is high for production environments lacking immediate mitigation.

Generated by OpenCVE AI on October 18, 2026 at 23:58 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the kernel update that includes the commit referenced in the provided Git URLs, which fixes skb_defer_nodes handling in dev_cpu_dead().
  • If an immediate kernel upgrade is not possible, disable CPU hot‑plug by setting the online status of CPUs to 0 in /sys/devices/system/cpu/*/online or by adding hotplug=off to the kernel command line, preventing CPUs from being taken offline during operation.
  • Monitor system logs (e.g., dmesg, journalctl) for messages about stalled page_pool operations or repeated CPU offline events, and reduce high‑priority network traffic that could raise skb_defer_nodes above safe thresholds. Optionally adjust the sysctl_skb_defer_max value to lower the risk of a race condition.

Generated by OpenCVE AI on October 18, 2026 at 23:58 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 19 Oct 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-400
CWE-766

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net: flush skb_defer_nodes in dev_cpu_dead() When a CPU goes offline, dev_cpu_dead() drains its softnet queues (completion_queue, output_queue, poll_list, process_queue, and input_pkt_queue), but leaves net_hotdata.skb_defer_nodes untouched. If oldcpu goes offline while holding pending skbs in its skb_defer_nodes lists (e.g. below the sysctl_skb_defer_max >> 1 IPI threshold, or if the IPI races with CPU teardown), those skbs remain stranded until oldcpu is brought back online. If any of these skbs hold page_pool fragments, page_pool_destroy() will stall indefinitely waiting for inflight pages to be returned when a netdev or driver is torn down while oldcpu is offline. Additionally, if smp_call_function_single_async() fails in kick_defer_list_purge() because the target CPU went offline, reset defer_ipi_scheduled to 0 so future IPI kicks are not blocked when the CPU comes back online. Also, if oldcpu was the last online CPU on its NUMA node, drain that node's slot across all CPUs so no skbs deferred from that node remain stranded on idle remote CPUs (or if the node itself is subsequently offlined). Finally, in skb_attempt_defer_free(), re-check cpu_online(cpu) and whether the caller migrated CPUs after llist_add(), flushing the node list if so, to close the preemption TOCTOU race against CPU/node teardown.
Title net: flush skb_defer_nodes in dev_cpu_dead()
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-10-18T15:18:25.282Z

Reserved: 2026-09-25T10:25:14.357Z

Link: CVE-2026-98558

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:07.933

Modified: 2026-10-18T16:17:07.933

Link: CVE-2026-98558

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-19T00:00:10Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-766

    Critical Data Element Declared Public