CVE-2026-89566: Linux kernel · jbd2: check need_resched() when skipping busy checkpoint buffers
Affects Linux kernelSource CVE Database V5
Not known to be exploited · fixed in f9182a85991a0ad5cd2940df6db75f40ad90028c : update Linux kernel when convenient.
Data as of 26 Oct 2026, 13:47 UTC
Rated by Threat Radar · CVSS not yet scored by NVD
- EPSS
- 0.2% chance of exploitation in 30 days – higher than 10% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in f9182a85991a0ad5cd2940df6db75f40ad90028c, f213e12ff5c9590b1034ae8da0e6d09665c772d0, f83c23286e54180cdc83a36463a60003534cc290 +5
Exploitation evidence
Disclosed: evidence found.
CVE published 11 Sep 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade to a fixed release listed under Affected software.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in– |
Description
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.
References
- git.kernel.org/stable/c/dc7ece0b827fe3b748db685fb85cd2fc3710c3f9 (opens in a new tab)
- git.kernel.org/stable/c/f83c23286e54180cdc83a36463a60003534cc290 (opens in a new tab)
- git.kernel.org/stable/c/f9182a85991a0ad5cd2940df6db75f40ad90028c (opens in a new tab)
- git.kernel.org/stable/c/595cac7f1b32d009b97f83dd2b2d6a1a445e9bb4 (opens in a new tab)
- git.kernel.org/stable/c/f213e12ff5c9590b1034ae8da0e6d09665c772d0 (opens in a new tab)