# CVE-2026-23371: sched/deadline: Fix missing ENQUEUE_REPLENISH during PI de-boosting

CVE-2026-23371 is fixed in linux on 1 platform, first by DEBIAN-CVE-2026-23371, released March 25, 2026. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2026-23371
- Priority: Routine
- CVSS: 5.5 (Moderate)
- EPSS: 0.0017
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Mar 25, 2026
- Vendor advisory: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23371

## 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.

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | linux Debian 13.5 (trixie) | 6.12.115-2 | [DEBIAN-CVE-2026-23371](https://patchblox.com/security/data/fix/linux/debian-cve-2026-23371.md) | Mar 25, 2026 |
| Linux | linux Debian 14 | 6.19.8-1 | [DEBIAN-CVE-2026-23371](https://patchblox.com/security/data/fix/linux/debian-cve-2026-23371.md) | Mar 25, 2026 |

---

Data as of 2026-11-08T19:12:23Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
