CVE-2026-23371

sched/deadline: Fix missing ENQUEUE_REPLENISH during PI de-boosting

State
Published
Severity
Not scored
Published
Mar 25, 2026
Updated
Oct 30, 2026
Reserved
Jan 13, 2026

Read the record on cve.org

Description

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 2279f540ea7d05f22d2f0c4224319330228586bc to before e0e20852d44261a9d69188bc483872930e7ba727Affected
  • 2279f540ea7d05f22d2f0c4224319330228586bc to before ce6253fe718811cceb3a0ae0dbf0a5941dea3eb6Affected
  • 2279f540ea7d05f22d2f0c4224319330228586bc to before 65af3633caf195d397ec4c39f51ae7615bd5a627Affected
  • 2279f540ea7d05f22d2f0c4224319330228586bc to before 0638bf16b7a73a2fe63624bd0d16d9fd904805c3Affected
  • 2279f540ea7d05f22d2f0c4224319330228586bc to before ba1c22924ddcc280672a2a06a9ca99ee3a1b92c3Affected
  • 2279f540ea7d05f22d2f0c4224319330228586bc to before d658686a1331db3bb108ca079d76deb3208ed949Affected
  • 3cc3d77dc541181f97f1dc96d2977ef8359fd760Affected
  • d2b65976bf1ae9d0d9dd5770cd01695559438309Affected
  • 4.19.257 to before 4.20Affected
  • 5.4.212 to before 5.5Affected
LinuxLinux
  • 5.10Affected
  • before 5.10Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.18.34 through 6.18.*Not affected
  • 6.19.7 through 6.19.*Not affected
  • 7.0 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.