jbd2: check need_resched() when skipping busy checkpoint buffers (Linux Linux)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.21 % · percentile 11 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Linux
- NVD status
- Received
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
- https://git.kernel.org/stable/c/dc7ece0b827fe3b748db685fb85cd2fc3710c3f9
- https://git.kernel.org/stable/c/f83c23286e54180cdc83a36463a60003534cc290
- https://git.kernel.org/stable/c/f9182a85991a0ad5cd2940df6db75f40ad90028c
- https://git.kernel.org/stable/c/595cac7f1b32d009b97f83dd2b2d6a1a445e9bb4
- https://git.kernel.org/stable/c/f213e12ff5c9590b1034ae8da0e6d09665c772d0
European references
- ENISA EUVD · EUVD-2026-76477
- GCVE · GCVE-0-2026-89566
CERT-FR advisories
- CERTFR-2026-AVI-1385 — Multiples vulnérabilités dans les produits VMware · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1289 — Multiples vulnérabilités dans le noyau Linux de Debian LTS · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1253 — Multiples vulnérabilités dans le noyau Linux de Debian · cert.ssi.gouv.fr
Affected products
| Product | Versions |
|---|---|
| Linux · Linux | affected b98dba273a0e47dbfade89c9af73c5b012a4eabb < dc7ece0b827fe3b748db685fb85cd2fc3710c3f9 ; affected b98dba273a0e47dbfade89c9af73c5b012a4eabb < f83c23286e54180cdc83a36463a60003534cc290 ; affected b98dba273a0e47dbfade89c9af73c5b012a4eabb < f9182a85991a0ad5cd2940df6db75f40ad90028c ; affected b98dba273a0e47dbfade89c9af73c5b012a4eabb < 595cac7f1b32d009b97f83dd2b2d6a1a445e9bb4 ; affected b98dba273a0e47dbfade89c9af73c5b012a4eabb < f213e12ff5c9590b1034ae8da0e6d09665c772d0 ; affected 9c31bb2684f8035beca0275349d19d679b679ffb |
| Linux · Linux | affected 6.5 ; unaffected 0 < 6.5 ; unaffected 6.6.160 ≤ 6.6.* ; unaffected 6.12.109 ≤ 6.12.* ; unaffected 6.18.50 ≤ 6.18.* ; unaffected 7.2.4 ≤ 7.2.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |