CVE Catalog

CVE-2026-89566

Low risk· EPSS 10%
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.21%

10th 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