CVE-2026-89566
Niskie ryzyko· EPSS 10%Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
W jądrze Linux funkcja journal_shrink_one_cp_list() pomija zajęte bufory checkpointów przy wywołaniu z JBD2_SHRINK_BUSY_SKIP, a instrukcja continue pomija też sprawdzenie need_resched() na końcu pętli. Gdy lista checkpointów zawiera głównie zajęte bufory, shrinker może przejść całą listę trzymając journal->j_list_lock mimo żądania przeplanowania, powodując soft lockupy lub RCU stalls.
Ocena ryzyka
Długie trzymanie blokady j_list_lock pod presją pamięci może powodować soft lockupy, RCU stalls i spowolnienie systemu.
Rekomendacja
Zaktualizować jądro Linux do wersji, w której ścieżka zajętych buforów przechodzi przez sprawdzenie need_resched(), umożliwiając szybkie zwolnienie j_list_lock i przeplanowanie.
Inne podatności w Linux kernel (jbd2)
Oryginalny opis (angielski, źródło NVD)
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

