CVE-2026-89566
Low risk· EPSS 10%Exploitation Probability (EPSS)
Low risk10th percentile - higher than 10% of all known CVEs
Summary
In the Linux kernel, journal_shrink_one_cp_list() skips busy checkpoint buffers when called with JBD2_SHRINK_BUSY_SKIP, and the continue statement also skips the need_resched() check at the end of the loop body. When a checkpoint list contains mostly busy buffers, the shrinker can walk the entire list while holding journal->j_list_lock even when a reschedule has been requested, causing soft lockups or RCU stalls.
Risk Assessment
Long j_list_lock hold times under memory pressure can cause soft lockups, RCU stalls, and system slowdown.
Recommendation
Update the Linux kernel to a version where the busy-buffer path goes through the need_resched() check, allowing prompt release of j_list_lock and rescheduling.
Other vulnerabilities in Linux kernel (jbd2)
Original NVD description (English source)
In the Linux kernel, the following vulnerability has been resolved: jbd2: check need_resched() when skipping busy checkpoint buffers journal_shrink_one_cp_list() skips busy checkpoint buffers when called with JBD2_SHRINK_BUSY_SKIP. The continue statement on this path also skips the need_resched() check at the end of the loop body. Consequently, when a checkpoint list contains mostly busy buffers, the shrinker can walk the entire list while holding journal->j_list_lock, even when a reschedule has been requested. Large checkpoint lists under memory pressure can therefore cause long lock hold times and leave other CPUs spinning on j_list_lock, resulting in soft lockups or RCU stalls. Route the busy-buffer path through the need_resched() check so that the shrinker can release j_list_lock and reschedule promptly, restoring parity with the clean-buffer path, which already checks need_resched(). This does not change which checkpoint buffers are eligible for removal.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

