<?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>Tue, 29 Sep 2026 07:09:01 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-39749 — rcu: Protect -&gt;defer_qs_iw_pending from data race</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2025-39749</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, Siemens SIMATIC CN 4100&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;rcu: Protect -&amp;gt;defer_qs_iw_pending from data race&lt;/p&gt;
&lt;p&gt;On kernels built with CONFIG_IRQ_WORK=y, when rcu_read_unlock() is
invoked within an interrupts-disabled region of code [1], it will invoke
rcu_read_unlock_special(), which uses an irq-work handler to force the
system to notice when the RCU read-side critical section actually ends.
That end won&amp;#39;t happen until interrupts are enabled at the soonest.&lt;/p&gt;
&lt;p&gt;In some kernels, such as those booted with rcutree.use_softirq=y, the
irq-work handler is used unconditionally.&lt;/p&gt;
&lt;p&gt;The per-CPU rcu_data structure&amp;#39;s -&amp;gt;defer_qs_iw_pending field is
updated by the irq-work handler and is both read and updated by
rcu_read_unlock_special().  This resulted in the following KCSAN splat:&lt;/p&gt;
&lt;p&gt;------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;BUG: KCSAN: data-race in rcu_preempt_deferred_qs_handler / rcu_read_unlock_special&lt;/p&gt;
&lt;p&gt;read to 0xffff96b95f42d8d8 of 1 bytes by task 90 on cpu 8:
 rcu_read_unlock_special+0x175/0x260
 __rcu_read_unlock+0x92/0xa0
 rt_spin_unlock+0x9b/0xc0
 __local_bh_enable+0x10d/0x170
 __local_bh_enable_ip+0xfb/0x150
 rcu_do_batch+0x595/0xc40
 rcu_cpu_kthread+0x4e9/0x830
 smpboot_thread_fn+0x24d/0x3b0
 kthread+0x3bd/0x410
 ret_from_fork+0x35/0x40
 ret_from_fork_asm+0x1a/0x30&lt;/p&gt;
&lt;p&gt;write to 0xffff96b95f42d8d8 of 1 bytes by task 88 on cpu 8:
 rcu_preempt_deferred_qs_handler+0x1e/0x30
 irq_work_single+0xaf/0x160
 run_irq_workd+0x91/0xc0
 smpboot_thread_fn+0x24…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, Siemens SIMATIC CN 4100&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;rcu: Protect -&amp;gt;defer_qs_iw_pending from data race&lt;/p&gt;
&lt;p&gt;On kernels built with CONFIG_IRQ_WORK=y, when rcu_read_unlock() is
invoked within an interrupts-disabled region of code [1], it will invoke
rcu_read_unlock_special(), which uses an irq-work handler to force the
system to notice when the RCU read-side critical section actually ends.
That end won&amp;#39;t happen until interrupts are enabled at the soonest.&lt;/p&gt;
&lt;p&gt;In some kernels, such as those booted with rcutree.use_softirq=y, the
irq-work handler is used unconditionally.&lt;/p&gt;
&lt;p&gt;The per-CPU rcu_data structure&amp;#39;s -&amp;gt;defer_qs_iw_pending field is
updated by the irq-work handler and is both read and updated by
rcu_read_unlock_special().  This resulted in the following KCSAN splat:&lt;/p&gt;
&lt;p&gt;------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;BUG: KCSAN: data-race in rcu_preempt_deferred_qs_handler / rcu_read_unlock_special&lt;/p&gt;
&lt;p&gt;read to 0xffff96b95f42d8d8 of 1 bytes by task 90 on cpu 8:
 rcu_read_unlock_special+0x175/0x260
 __rcu_read_unlock+0x92/0xa0
 rt_spin_unlock+0x9b/0xc0
 __local_bh_enable+0x10d/0x170
 __local_bh_enable_ip+0xfb/0x150
 rcu_do_batch+0x595/0xc40
 rcu_cpu_kthread+0x4e9/0x830
 smpboot_thread_fn+0x24d/0x3b0
 kthread+0x3bd/0x410
 ret_from_fork+0x35/0x40
 ret_from_fork_asm+0x1a/0x30&lt;/p&gt;
&lt;p&gt;write to 0xffff96b95f42d8d8 of 1 bytes by task 88 on cpu 8:
 rcu_preempt_deferred_qs_handler+0x1e/0x30
 irq_work_single+0xaf/0x160
 run_irq_workd+0x91/0xc0
 smpboot_thread_fn+0x24…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2025-39749</guid>
    </item>
  </channel>
</rss>
