CVE-2026-23356Linux内核DRBD模块存在逻辑漏洞,在`drbd_al_begin_io_nonblock()`函数中未正确处理`lc_get_cumulative()`失败的情况。这导致引用计数管理错误,可能触发内核崩溃及拒绝服务。
该漏洞发生在Linux内核的DRBD驱动中。当调用`drbd_al_begin_io_nonblock()`时,代码假设在持有`device->al_lock`自旋锁下,`lc_get_cumulative()`定会成功。然而,竞态条件允许其他代码路径(如`lc_try_lock()`)导致该调用失败。原代码仅记录日志却未返回错误,致使后续流程误认为请求已持有活动日志引用。请求结束时,代码尝试释放不存在的引用,触发`lc_put()`中的`BUG_ON(refcnt == 0)`断言,导致系统崩溃。