CVE-2026-43392

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

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*

History

11 Nov 2026, 20:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: sched_ext: Soluciona la inanición de scx_enable() bajo saturación de clase ’fair’. Durante scx_enable(), el bucle de cambio de tareas READY -> ENABLED cambia la sched_class del hilo llamador de ’fair’ a ’ext’. Dado que ’fair’ tiene mayor prioridad que ’ext’, las cargas de trabajo de clase ’fair’ que saturan pueden inanicionar indefinidamente al hilo de habilitación, colgando el sistema. Esto se introdujo cuando la ruta de habilitación cambió de preempt_disable() a scx_bypass(), lo que no protege contra la inanición de clase ’fair’. Tenga en cuenta que la protección original de preempt_disable() tampoco era completa; en modos de cambio parcial, el hilo llamador aún podía sufrir inanición después de preempt_enable(), ya que podría haber sido cambiado a la clase ’ext’. Se soluciona descargando el cuerpo de habilitación a un kthread RT (SCHED_FIFO) dedicado a nivel de sistema que no puede sufrir inanición por tareas de clase ’fair’ ni ’ext’. scx_enable() crea el kthread de forma perezosa en el primer uso y pasa el puntero ’ops’ a través de una estructura scx_enable_cmd que contiene el kthread_work, luego espera sincrónicamente la finalización. La workfn se ejecuta en un kthread diferente de sch -> helper (que ejecuta disable_work), por lo que puede vaciar de forma segura disable_work en la ruta de error sin interbloqueo.

Information

Published : 2026-05-08 15:16

Updated : 2026-11-11 20:10


NVD link : CVE-2026-43392

Mitre link : CVE-2026-43392

CVE.ORG link : CVE-2026-43392


JSON object : View

Products Affected

linux

  • linux_kernel