<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sat, 03 Oct 2026 22:19:41 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-64250 — LoongArch: Report dying CPU to RCU in stop_this_cpu()</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-64250</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;LoongArch: Report dying CPU to RCU in stop_this_cpu()&lt;/p&gt;
&lt;p&gt;This is a port of MIPS commit 9f3f3bdc6d9dac1 (&amp;#34;MIPS: smp: report dying
CPU to RCU in stop_this_cpu()&amp;#34;). 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.&lt;/p&gt;
&lt;p&gt;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 (&amp;#34;irq_work: Fix use-after-free in irq_work_single() on
PREEMPT_RT&amp;#34;), 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:&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This issue needs some hacks to reproduce, and it was not noticed on
LoongArch because arch_irq_work_has_interrupt() usually returns true.&lt;/p&gt;
&lt;p&gt;Call rcutree_report_cpu_dead() once interrupts are disabled, mirroring…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;LoongArch: Report dying CPU to RCU in stop_this_cpu()&lt;/p&gt;
&lt;p&gt;This is a port of MIPS commit 9f3f3bdc6d9dac1 (&amp;#34;MIPS: smp: report dying
CPU to RCU in stop_this_cpu()&amp;#34;). 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.&lt;/p&gt;
&lt;p&gt;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 (&amp;#34;irq_work: Fix use-after-free in irq_work_single() on
PREEMPT_RT&amp;#34;), 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:&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This issue needs some hacks to reproduce, and it was not noticed on
LoongArch because arch_irq_work_has_interrupt() usually returns true.&lt;/p&gt;
&lt;p&gt;Call rcutree_report_cpu_dead() once interrupts are disabled, mirroring…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-64250</guid>
    </item>
  </channel>
</rss>
