CVE-2026-23356

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
25/03/2026
Last modified:
24/04/2026

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> drbd: fix "LOGIC BUG" in drbd_al_begin_io_nonblock()<br /> <br /> Even though we check that we "should" be able to do lc_get_cumulative()<br /> while holding the device-&gt;al_lock spinlock, it may still fail,<br /> if some other code path decided to do lc_try_lock() with bad timing.<br /> <br /> If that happened, we logged "LOGIC BUG for enr=...",<br /> but still did not return an error.<br /> <br /> The rest of the code now assumed that this request has references<br /> for the relevant activity log extents.<br /> <br /> The implcations are that during an active resync, mutual exclusivity of<br /> resync versus application IO is not guaranteed. And a potential crash<br /> at this point may not realizs that these extents could have been target<br /> of in-flight IO and would need to be resynced just in case.<br /> <br /> Also, once the request completes, it will give up activity log references it<br /> does not even hold, which will trigger a BUG_ON(refcnt == 0) in lc_put().<br /> <br /> Fix:<br /> <br /> Do not crash the kernel for a condition that is harmless during normal<br /> operation: also catch "e-&gt;refcnt == 0", not only "e == NULL"<br /> when being noisy about "al_complete_io() called on inactive extent %u\n".<br /> <br /> And do not try to be smart and "guess" whether something will work, then<br /> be surprised when it does not.<br /> Deal with the fact that it may or may not work. If it does not, remember a<br /> possible "partially in activity log" state (only possible for requests that<br /> cross extent boundaries), and return an error code from<br /> drbd_al_begin_io_nonblock().<br /> <br /> A latter call for the same request will then resume from where we left off.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 3.10.1 (including) 5.10.253 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (including) 5.15.203 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.167 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.6.130 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (including) 6.12.77 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (including) 6.18.17 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 (including) 6.19.7 (excluding)
cpe:2.3:o:linux:linux_kernel:3.10:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:*