<?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 23:49:20 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-74601 — ring-buffer: Use current_context for safe per-CPU buffer swap</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-74601</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;ring-buffer: Use current_context for safe per-CPU buffer swap&lt;/p&gt;
&lt;p&gt;The ring_buffer_swap_cpu() function currently checks the per-CPU
committing counter to determine if a buffer is actively being written to
before performing the swap. However, there exists a race window where
this check can be bypassed:&lt;/p&gt;
&lt;p&gt;ring_buffer_lock_reserve
        cpu_buffer = buffer-&amp;gt;buffers[cpu];       // cpu_buffer_a
        rb_reserve_next_event
            rb_start_commit // inc committing
            if (unlikely(READ_ONCE(cpu_buffer-&amp;gt;buffer) != buffer)) {...}
            __rb_reserve_next
                rb_move_tail
                    rb_end_commit(cpu_buffer);   // dec committing =&amp;gt; 0
                    /* interrupt hits here, successfully swaps! */
                    local_inc(&amp;amp;cpu_buffer-&amp;gt;committing);&lt;/p&gt;
&lt;p&gt;ring_buffer_unlock_commit
        cpu_buffer = buffer-&amp;gt;buffers[cpu];      // cpu_buffer_b
        rb_commit
            rb_end_commit
            RB_WARN_ON(cpu_buffer, !local_read(&amp;amp;cpu_buffer-&amp;gt;committing))
                                                // triggers warning&lt;/p&gt;
&lt;p&gt;The committing counter can temporarily drop to 0 during a single write
operation (within rb_move_tail), creating a window where swap can
succeed even though the write is still in progress. This leads to
inconsistent buffer state and triggers the RB_WARN_ON in rb_commit().&lt;/p&gt;
&lt;p&gt;Replace the committing counter check with current_context checks, which
are se…&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;ring-buffer: Use current_context for safe per-CPU buffer swap&lt;/p&gt;
&lt;p&gt;The ring_buffer_swap_cpu() function currently checks the per-CPU
committing counter to determine if a buffer is actively being written to
before performing the swap. However, there exists a race window where
this check can be bypassed:&lt;/p&gt;
&lt;p&gt;ring_buffer_lock_reserve
        cpu_buffer = buffer-&amp;gt;buffers[cpu];       // cpu_buffer_a
        rb_reserve_next_event
            rb_start_commit // inc committing
            if (unlikely(READ_ONCE(cpu_buffer-&amp;gt;buffer) != buffer)) {...}
            __rb_reserve_next
                rb_move_tail
                    rb_end_commit(cpu_buffer);   // dec committing =&amp;gt; 0
                    /* interrupt hits here, successfully swaps! */
                    local_inc(&amp;amp;cpu_buffer-&amp;gt;committing);&lt;/p&gt;
&lt;p&gt;ring_buffer_unlock_commit
        cpu_buffer = buffer-&amp;gt;buffers[cpu];      // cpu_buffer_b
        rb_commit
            rb_end_commit
            RB_WARN_ON(cpu_buffer, !local_read(&amp;amp;cpu_buffer-&amp;gt;committing))
                                                // triggers warning&lt;/p&gt;
&lt;p&gt;The committing counter can temporarily drop to 0 during a single write
operation (within rb_move_tail), creating a window where swap can
succeed even though the write is still in progress. This leads to
inconsistent buffer state and triggers the RB_WARN_ON in rb_commit().&lt;/p&gt;
&lt;p&gt;Replace the committing counter check with current_context checks, which
are se…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-74601</guid>
    </item>
  </channel>
</rss>
