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

LoongArch: Report dying CPU to RCU in stop_this_cpu()

This is a port of MIPS commit 9f3f3bdc6d9dac1 ("MIPS: smp: report dying
CPU to RCU in stop_this_cpu()"). smp_send_stop() parks all secondary
CPUs in stop_this_cpu(). And the function marks the CPU offline for the
scheduler via set_cpu_online(false) but never informs RCU, so RCU keeps
expecting a quiescent state from CPUs that are now spinning forever with
interrupts disabled.

As long as nothing waits for an RCU grace period after smp_send_stop()
this is harmless, which is why it went unnoticed. However, since commit
91840be8f710370 ("irq_work: Fix use-after-free in irq_work_single() on
PREEMPT_RT"), irq_work_sync() calls synchronize_rcu() on architectures
without an irq_work self-IPI, i.e. where arch_irq_work_has_interrupt()
returns false. Any irq_work_sync() issued in the reboot/shutdown/halt
path after smp_send_stop() then blocks on a grace period that can never
complete, hanging the reboot:

WARNING: CPU: 0 PID: 15 at kernel/irq_work.c:144 irq_work_queue_on
...
rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
rcu: Offline CPU 1 blocking current GP.
rcu: Offline CPU 2 blocking current GP.
rcu: Offline CPU 3 blocking current GP.

This issue needs some hacks to reproduce, and it was not noticed on
LoongArch because arch_irq_work_has_interrupt() usually returns true.

Call rcutree_report_cpu_dead() once interrupts are disabled, mirroring
the generic CPU-hotplug offline path, so RCU stops waiting on the parked
CPUs and grace periods can still complete. LoongArch shuts down all CPUs
here without going through the CPU-hotplug mechanism, so this report is
not otherwise issued.
Published: 2026-07-24
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability occurs when the LoongArch kernel shuts down all CPUs without reporting a dying CPU to RCU. Because RCU expects every CPU to eventually reach a quiescent state, the missing report causes RCU to block waiting for a grace period that can never complete. When shutdown or reboot paths issue an irq_work_sync call after smp_send_stop(), the request stalls on the nonexistent RCU grace period, preventing the system from completing the reboot. The result is a denial‑of‑service condition where the machine hangs during shutdown or reboot. The weakness can be classified as an improper handling of CPU hot‑plug / shutdown synchronization, leading to a deadlock in the RCU subsystem. It does not provide remote code execution or privilege escalation directly, but it does compromise availability. Because the issue requires the system to go through a reboot or shutdown sequence, it is a local or system‑privileged threat; only entities capable of initiating a shutdown can exploit it. The absence of an RCU notification constitutes a logic error in the kernel maintenance path rather than a generic flaw.

Affected Systems

Linux kernel on the LoongArch architecture. No specific kernel versions are listed in the data, so the vulnerability applies to all LoongArch builds until a patch that adds rcutree_report_cpu_dead after interrupts are disabled is applied.

Risk and Exploitability

The EPSS score is below 1% and the vulnerability is not listed in the CISA KEV catalog, indicating a very low likelihood of widespread exploitation. The CVSS score is 5.5, but the risk is significant to affected installations because an intentional shutdown can hang the system. The vulnerability is local, requiring the ability to initiate system reboot or shutdown, and it is exploitable only in the shutdown/reboot path where RCU grace periods are invoked. The severity is mainly due to the availability impact rather than confidentiality or integrity.

Generated by OpenCVE AI on August 13, 2026 at 11:38 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a LoongArch build that includes the patch for the missing RCU notification, addressing the improper CPU hot‑plug handling identified by CWE‑833.
  • If an immediate kernel upgrade is not possible, temporarily patch the shutdown process to invoke rcutree_report_cpu_dead after disabling interrupts, or adjust irq_work_sync handling so that it does not wait on a RCU grace period, thereby avoiding the deadlock rooted in the CWE‑833 weakness.
  • Verify that the applied fix prevents reboot or shutdown hangs by checking system logs for rcu_sched stall messages and confirming that the system completes the reboot sequence.

Generated by OpenCVE AI on August 13, 2026 at 11:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4720-1 linux security update
Debian DLA Debian DLA DLA-4723-1 linux-6.1 security update
History

Wed, 12 Aug 2026 16:00:00 +0000

Type Values Removed Values Added
Weaknesses NVD-CWE-noinfo
CPEs cpe:2.3:o:linux:linux_kernel:7.1:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc7:*:*:*:*:*:*
Metrics cvssV3_1

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


Tue, 28 Jul 2026 16:15:00 +0000


Fri, 24 Jul 2026 18:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: LoongArch: Report dying CPU to RCU in stop_this_cpu() This is a port of MIPS commit 9f3f3bdc6d9dac1 ("MIPS: smp: report dying CPU to RCU in stop_this_cpu()"). smp_send_stop() parks all secondary CPUs in stop_this_cpu(). And the function marks the CPU offline for the scheduler via set_cpu_online(false) but never informs RCU, so RCU keeps expecting a quiescent state from CPUs that are now spinning forever with interrupts disabled. As long as nothing waits for an RCU grace period after smp_send_stop() this is harmless, which is why it went unnoticed. However, since commit 91840be8f710370 ("irq_work: Fix use-after-free in irq_work_single() on PREEMPT_RT"), irq_work_sync() calls synchronize_rcu() on architectures without an irq_work self-IPI, i.e. where arch_irq_work_has_interrupt() returns false. Any irq_work_sync() issued in the reboot/shutdown/halt path after smp_send_stop() then blocks on a grace period that can never complete, hanging the reboot: WARNING: CPU: 0 PID: 15 at kernel/irq_work.c:144 irq_work_queue_on ... rcu: INFO: rcu_sched detected stalls on CPUs/tasks: rcu: Offline CPU 1 blocking current GP. rcu: Offline CPU 2 blocking current GP. rcu: Offline CPU 3 blocking current GP. This issue needs some hacks to reproduce, and it was not noticed on LoongArch because arch_irq_work_has_interrupt() usually returns true. Call rcutree_report_cpu_dead() once interrupts are disabled, mirroring the generic CPU-hotplug offline path, so RCU stops waiting on the parked CPUs and grace periods can still complete. LoongArch shuts down all CPUs here without going through the CPU-hotplug mechanism, so this report is not otherwise issued.
Title LoongArch: Report dying CPU to RCU in stop_this_cpu()
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-07-24T15:31:17.021Z

Reserved: 2026-07-19T15:36:31.773Z

Link: CVE-2026-64250

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Analyzed

Published: 2026-07-24T16:16:54.577

Modified: 2026-08-12T15:53:42.480

Link: CVE-2026-64250

cve-icon Redhat

Severity :

Publid Date: 2026-07-24T00:00:00Z

Links: CVE-2026-64250 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T11:45:03Z

Weaknesses