sched_ext: Fix starvation of scx_enable() under fair-class saturation
Summary
| CVE | CVE-2026-43392 |
|---|---|
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-05-08 15:16:50 UTC |
| Updated | 2026-05-12 14:10:27 UTC |
| Description | In the Linux kernel, the following vulnerability has been resolved: sched_ext: Fix starvation of scx_enable() under fair-class saturation During scx_enable(), the READY -> ENABLED task switching loop changes the calling thread's sched_class from fair to ext. Since fair has higher priority than ext, saturating fair-class workloads can indefinitely starve the enable thread, hanging the system. This was introduced when the enable path switched from preempt_disable() to scx_bypass() which doesn't protect against fair-class starvation. Note that the original preempt_disable() protection wasn't complete either - in partial switch modes, the calling thread could still be starved after preempt_enable() as it may have been switched to ext class. Fix it by offloading the enable body to a dedicated system-wide RT (SCHED_FIFO) kthread which cannot be starved by either fair or ext class tasks. scx_enable() lazily creates the kthread on first use and passes the ops pointer through a struct scx_enable_cmd containing the kthread_work, then synchronously waits for completion. The workfn runs on a different kthread from sch->helper (which runs disable_work), so it can safely flush disable_work on the error path without deadlock. |
Risk And Classification
EPSS: 0.000180000 probability, percentile 0.047270000 (date 2026-05-12)
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Linux | Linux | affected 8c2090c504e998c8f34ec870bae71dafcc96a6e0 e0b14bf06393be137d3efb6a3b7cd5b4b9810a6b git | Not specified |
| CNA | Linux | Linux | affected 8c2090c504e998c8f34ec870bae71dafcc96a6e0 c44198f25fdfecc0ec0fe366bf8a47fe17d8e229 git | Not specified |
| CNA | Linux | Linux | affected 8c2090c504e998c8f34ec870bae71dafcc96a6e0 05ab9ec5dc24f234e0a2fecf3e6ff937c68f7d81 git | Not specified |
| CNA | Linux | Linux | affected 8c2090c504e998c8f34ec870bae71dafcc96a6e0 b06ccbabe2506fd70b9167a644978b049150224a git | Not specified |
| CNA | Linux | Linux | affected 6.12 | Not specified |
| CNA | Linux | Linux | unaffected 6.12 semver | Not specified |
| CNA | Linux | Linux | unaffected 6.12.78 6.12.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.18.20 6.18.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.19.9 6.19.* semver | Not specified |
| CNA | Linux | Linux | unaffected 7.0 * original_commit_for_fix | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| git.kernel.org/stable/c/05ab9ec5dc24f234e0a2fecf3e6ff937c68f7d81 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | |
| git.kernel.org/stable/c/c44198f25fdfecc0ec0fe366bf8a47fe17d8e229 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | |
| git.kernel.org/stable/c/b06ccbabe2506fd70b9167a644978b049150224a | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | |
| git.kernel.org/stable/c/e0b14bf06393be137d3efb6a3b7cd5b4b9810a6b | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.