CVE-2026-23371
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
25/03/2026
Last modified:
24/04/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
sched/deadline: Fix missing ENQUEUE_REPLENISH during PI de-boosting<br />
<br />
Running stress-ng --schedpolicy 0 on an RT kernel on a big machine<br />
might lead to the following WARNINGs (edited).<br />
<br />
sched: DL de-boosted task PID 22725: REPLENISH flag missing<br />
<br />
WARNING: CPU: 93 PID: 0 at kernel/sched/deadline.c:239 dequeue_task_dl+0x15c/0x1f8<br />
... (running_bw underflow)<br />
Call trace:<br />
dequeue_task_dl+0x15c/0x1f8 (P)<br />
dequeue_task+0x80/0x168<br />
deactivate_task+0x24/0x50<br />
push_dl_task+0x264/0x2e0<br />
dl_task_timer+0x1b0/0x228<br />
__hrtimer_run_queues+0x188/0x378<br />
hrtimer_interrupt+0xfc/0x260<br />
...<br />
<br />
The problem is that when a SCHED_DEADLINE task (lock holder) is<br />
changed to a lower priority class via sched_setscheduler(), it may<br />
fail to properly inherit the parameters of potential DEADLINE donors<br />
if it didn&#39;t already inherit them in the past (shorter deadline than<br />
donor&#39;s at that time). This might lead to bandwidth accounting<br />
corruption, as enqueue_task_dl() won&#39;t recognize the lock holder as<br />
boosted.<br />
<br />
The scenario occurs when:<br />
1. A DEADLINE task (donor) blocks on a PI mutex held by another<br />
DEADLINE task (holder), but the holder doesn&#39;t inherit parameters<br />
(e.g., it already has a shorter deadline)<br />
2. sched_setscheduler() changes the holder from DEADLINE to a lower<br />
class while still holding the mutex<br />
3. The holder should now inherit DEADLINE parameters from the donor<br />
and be enqueued with ENQUEUE_REPLENISH, but this doesn&#39;t happen<br />
<br />
Fix the issue by introducing __setscheduler_dl_pi(), which detects when<br />
a DEADLINE (proper or boosted) task gets setscheduled to a lower<br />
priority class. In case, the function makes the task inherit DEADLINE<br />
parameters of the donoer (pi_se) and sets ENQUEUE_REPLENISH flag to<br />
ensure proper bandwidth accounting during the next enqueue operation.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.19.257 (including) | 4.20 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.4.212 (including) | 5.5 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.10.1 (including) | 6.19.7 (excluding) |
| cpe:2.3:o:linux:linux_kernel:5.10:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



