<?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>Wed, 30 Sep 2026 10:00:56 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-23356 — drbd: fix "LOGIC BUG" in drbd_al_begin_io_nonblock()</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-23356</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;drbd: fix &amp;#34;LOGIC BUG&amp;#34; in drbd_al_begin_io_nonblock()&lt;/p&gt;
&lt;p&gt;Even though we check that we &amp;#34;should&amp;#34; be able to do lc_get_cumulative()
while holding the device-&amp;gt;al_lock spinlock, it may still fail,
if some other code path decided to do lc_try_lock() with bad timing.&lt;/p&gt;
&lt;p&gt;If that happened, we logged &amp;#34;LOGIC BUG for enr=...&amp;#34;,
but still did not return an error.&lt;/p&gt;
&lt;p&gt;The rest of the code now assumed that this request has references
for the relevant activity log extents.&lt;/p&gt;
&lt;p&gt;The implcations are that during an active resync, mutual exclusivity of
resync versus application IO is not guaranteed. And a potential crash
at this point may not realizs that these extents could have been target
of in-flight IO and would need to be resynced just in case.&lt;/p&gt;
&lt;p&gt;Also, once the request completes, it will give up activity log references it
does not even hold, which will trigger a BUG_ON(refcnt == 0) in lc_put().&lt;/p&gt;
&lt;p&gt;Fix:&lt;/p&gt;
&lt;p&gt;Do not crash the kernel for a condition that is harmless during normal
operation: also catch &amp;#34;e-&amp;gt;refcnt == 0&amp;#34;, not only &amp;#34;e == NULL&amp;#34;
when being noisy about &amp;#34;al_complete_io() called on inactive extent %u\n&amp;#34;.&lt;/p&gt;
&lt;p&gt;And do not try to be smart and &amp;#34;guess&amp;#34; whether something will work, then
be surprised when it does not.
Deal with the fact that it may or may not work.  If it does not, remember a
possible &amp;#34;partially in activity log&amp;#34; state (only possible for requests that
cross extent boundaries), and return an error code from
drbd_al_begin_io_nonbloc…&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;drbd: fix &amp;#34;LOGIC BUG&amp;#34; in drbd_al_begin_io_nonblock()&lt;/p&gt;
&lt;p&gt;Even though we check that we &amp;#34;should&amp;#34; be able to do lc_get_cumulative()
while holding the device-&amp;gt;al_lock spinlock, it may still fail,
if some other code path decided to do lc_try_lock() with bad timing.&lt;/p&gt;
&lt;p&gt;If that happened, we logged &amp;#34;LOGIC BUG for enr=...&amp;#34;,
but still did not return an error.&lt;/p&gt;
&lt;p&gt;The rest of the code now assumed that this request has references
for the relevant activity log extents.&lt;/p&gt;
&lt;p&gt;The implcations are that during an active resync, mutual exclusivity of
resync versus application IO is not guaranteed. And a potential crash
at this point may not realizs that these extents could have been target
of in-flight IO and would need to be resynced just in case.&lt;/p&gt;
&lt;p&gt;Also, once the request completes, it will give up activity log references it
does not even hold, which will trigger a BUG_ON(refcnt == 0) in lc_put().&lt;/p&gt;
&lt;p&gt;Fix:&lt;/p&gt;
&lt;p&gt;Do not crash the kernel for a condition that is harmless during normal
operation: also catch &amp;#34;e-&amp;gt;refcnt == 0&amp;#34;, not only &amp;#34;e == NULL&amp;#34;
when being noisy about &amp;#34;al_complete_io() called on inactive extent %u\n&amp;#34;.&lt;/p&gt;
&lt;p&gt;And do not try to be smart and &amp;#34;guess&amp;#34; whether something will work, then
be surprised when it does not.
Deal with the fact that it may or may not work.  If it does not, remember a
possible &amp;#34;partially in activity log&amp;#34; state (only possible for requests that
cross extent boundaries), and return an error code from
drbd_al_begin_io_nonbloc…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-23356</guid>
    </item>
  </channel>
</rss>
