CVE-2026-23371 json
sched/deadline: Fix missing ENQUEUE_REPLENISH during PI de-boosting
published 2026-03-25 7 mo ago modified 2026-10-30 10 d ago also EUVD-2026-15357
- cvss
- 5.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 6%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
sched/deadline: Fix missing ENQUEUE_REPLENISH during PI de-boosting
Running stress-ng --schedpolicy 0 on an RT kernel on a big machine might lead to the following WARNINGs (edited).
sched: DL de-boosted task PID 22725: REPLENISH flag missing
WARNING: CPU: 93 PID: 0 at kernel/sched/deadline.c:239 dequeue_task_dl+0x15c/0x1f8 ... (running_bw underflow) Call trace: dequeue_task_dl+0x15c/0x1f8 (P) dequeue_task+0x80/0x168 deactivate_task+0x24/0x50 push_dl_task+0x264/0x2e0 dl_task_timer+0x1b0/0x228 __hrtimer_run_queues+0x188/0x378 hrtimer_interrupt+0xfc/0x260 ...
The problem is that when a SCHED_DEADLINE task (lock holder) is changed to a lower priority class via sched_setscheduler(), it may fail to properly inherit the parameters of potential DEADLINE donors if it didn't already inherit them in the past (shorter deadline than donor's at that time). This might lead to bandwidth accounting corruption, as enqueue_task_dl() won't recognize the lock holder as boosted.
The scenario occurs when: 1. A DEADLINE task (donor) blocks on a PI mutex held by another DEADLINE task (holder), but the holder doesn't inherit parameters (e.g., it already has a shorter deadline) 2. sched_setscheduler() changes the holder from DEADLINE to a lower class while still holding the mutex 3. The holder should now inherit DEADLINE parameters from the donor and be enqueued with ENQUEUE_REPLENISH, but this doesn't happen
Fix the issue by introducing __setscheduler_dl_pi(), which detects when a DEADLINE (proper or boosted) task gets setscheduled to a lower priority class. In case, the function makes the task inherit DEADLINE parameters of the donoer (pi_se) and sets ENQUEUE_REPLENISH flag to ensure proper bandwidth accounting during the next enqueue operation.
Patch / fix
- Linux Linux 4.20, 5.5, 6.1.191, 6.6.160, 6.12.114, 6.18.34, 6.19.7, 7.0
- linux Debian 13 6.12.115-2
- linux Debian 14 6.19.8-1
debian advisories DEBIAN-CVE-2026-23371
- git.kernel.org/stable/c/e0e20852d44261a9d69188bc483872930e7ba727 commit
- git.kernel.org/stable/c/ce6253fe718811cceb3a0ae0dbf0a5941dea3eb6 commit
- git.kernel.org/stable/c/65af3633caf195d397ec4c39f51ae7615bd5a627 commit
- git.kernel.org/stable/c/0638bf16b7a73a2fe63624bd0d16d9fd904805c3 commit
- git.kernel.org/stable/c/ba1c22924ddcc280672a2a06a9ca99ee3a1b92c3 commit
- git.kernel.org/stable/c/d658686a1331db3bb108ca079d76deb3208ed949 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-23371 updated
kernel: sched/deadline: Fix missing ENQUEUE_REPLENISH during PI de-boosting
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.17% chance of exploitation in the next 30 days, higher than 6% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/e0e20852d44261a9d69188bc483872930e7ba727
- git.kernel.org /stable/c/ce6253fe718811cceb3a0ae0dbf0a5941dea3eb6
- git.kernel.org /stable/c/65af3633caf195d397ec4c39f51ae7615bd5a627
- git.kernel.org /stable/c/0638bf16b7a73a2fe63624bd0d16d9fd904805c3
-
git.kernel.org
/stable/c/ba1c22924ddcc280672a2a06a9ca99ee3a1b92c3
patch
-
git.kernel.org
/stable/c/d658686a1331db3bb108ca079d76deb3208ed949
patch
Sources
- CVE List CVE-2026-23371
- NVD CVE-2026-23371
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.