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.
Published: 2026-09-11
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via Soft Lockups
Action: Patch Now
AI Analysis

Impact

The kernel bug over a checkpoint buffer list that is mostly busy. The continue statement bypasses a need_resched() check, keeping journal->j_list_lock locked for an extended period. Under memory pressure with large checkpoint lists this leads to long lock hold times, spinning CPUs, soft lockups, or RCU stalls, effectively denying service by preventing other tasks from progressing.

Affected Systems

Linux kernels that include the vulnerable journal shrinker code are affected. The CV or list of affected releases. Administrators should verify whether their kernel contains the problematic implementation.

Risk and Exploitability

The CVSS score of 5.5 indicates moderate severity. The EPSS score is < 1%, indicating a very low probability of exploitation, and the vulnerability is not listed in the CISA KEV catalog. Likely attack vector is local, where an attacker can generate busy checkpoint buffers or induce memory pressure to trigger the bug. A privileged or root process could accelerate the effect, but a normal user might still cause a soft lockup if the kernel runs low on memory.

Generated by OpenCVE AI on September 13, 2026 at 04:54 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to the latest stable release that includes the fix for CVE-2026-89566; the patch is incorporated in commit f83c23286e54180cdc83a36463a60003534cc290.
  • If a kernel upgrade is not immediately feasible, limit memory pressure that triggers heavy checkpoint buffer reducing write‑intensive workloads to reduce the likelihood logslockup indicators; consider disabling journaling or switching to a different filesystem if periodic soft lockups persist.
  • Following any kernel upgrade that includes the patch, reboot the system to ensure that all processes and kernel modules run against the updated code and to clear any residual locks from the previous kernel context.

Generated by OpenCVE AI on September 13, 2026 at 04:54 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 12 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-606
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Fri, 11 Sep 2026 23:45:00 +0000

Type Values Removed Values Added
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.
Title jbd2: check need_resched() when skipping busy checkpoint buffers
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-11T19:44:36.599Z

Reserved: 2026-09-11T19:38:34.726Z

Link: CVE-2026-89566

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-11T20:19:40.550

Modified: 2026-09-11T20:19:40.550

Link: CVE-2026-89566

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-11T19:44:36Z

Links: CVE-2026-89566 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-13T05:00:12Z

Weaknesses
  • CWE-606

    Unchecked Input for Loop Condition