CVE-2025-21897

In the Linux kernel, the following vulnerability has been resolved: sched_ext: Fix pick_task_scx() picking non-queued tasks when it's called without balance() a6250aa251ea ("sched_ext: Handle cases where pick_task_scx() is called without preceding balance_scx()") added a workaround to handle the cases where pick_task_scx() is called without prececing balance_scx() which is due to a fair class bug where pick_taks_fair() may return NULL after a true return from balance_fair(). The workaround detects when pick_task_scx() is called without preceding balance_scx() and emulates SCX_RQ_BAL_KEEP and triggers kicking to avoid stalling. Unfortunately, the workaround code was testing whether @prev was on SCX to decide whether to keep the task running. This is incorrect as the task may be on SCX but no longer runnable. This could lead to a non-runnable task to be returned from pick_task_scx() which cause interesting confusions and failures. e.g. A common failure mode is the task ending up with (!on_rq && on_cpu) state which can cause potential wakers to busy loop, which can easily lead to deadlocks. Fix it by testing whether @prev has SCX_TASK_QUEUED set. This makes @prev_on_scx only used in one place. Open code the usage and improve the comment while at it.
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:6.12:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc4:*:*:*:*:*:*

History

31 Oct 2025, 18:51

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:6.14:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: sched_ext: Fix pick_task_scx() picking nonqueued task when it is called without balance() a6250aa251ea ("sched_ext: Handle cases where pick_task_scx() is called without previous balance_scx()") añadió un workaround para gestionar los casos donde pick_task_scx() se llama sin preceder a balance_scx(), lo cual se debe a un error de clase fair donde pick_taks_fair() puede devolver NULL después de un retorno verdadero de balance_fair(). El workaround detecta cuándo se llama a pick_task_scx() sin preceder a balance_scx() y emula SCX_RQ_BAL_KEEP y activa el kicking para evitar el estancamiento. Desafortunadamente, el código del workaround estaba probando si @prev estaba en SCX para decidir si mantener la tarea en ejecución. Esto es incorrecto ya que la tarea puede estar en SCX pero ya no se puede ejecutar. Esto podría provocar que pick_task_scx() devuelva una tarea no ejecutable, lo que causa confusiones y fallos interesantes. Por ejemplo, un modo de fallo común es que la tarea termine en el estado (!on_rq && on_cpu), lo que puede provocar que los posibles reactivadores entren en bucles de ocupación, lo que puede fácilmente provocar interbloqueos. Solucione esto comprobando si @prev tiene SCX_TASK_QUEUED definido. Esto hace que @prev_on_scx solo se use en un lugar. Abra el código para su uso y mejore el comentario.
First Time Linux
Linux linux Kernel
References () https://git.kernel.org/stable/c/5324c459f90d16b0c43a78b494c598915d782b7a - () https://git.kernel.org/stable/c/5324c459f90d16b0c43a78b494c598915d782b7a - Patch
References () https://git.kernel.org/stable/c/8fef0a3b17bb258130a4fcbcb5addf94b25e9ec5 - () https://git.kernel.org/stable/c/8fef0a3b17bb258130a4fcbcb5addf94b25e9ec5 - Patch
References () https://git.kernel.org/stable/c/de60a31cb0bcacfaf9487546eac5e70e0a9c66d7 - () https://git.kernel.org/stable/c/de60a31cb0bcacfaf9487546eac5e70e0a9c66d7 - Patch
CWE CWE-667
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5

01 Apr 2025, 16:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-04-01 16:15

Updated : 2025-10-31 18:51


NVD link : CVE-2025-21897

Mitre link : CVE-2025-21897

CVE.ORG link : CVE-2025-21897


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-667

Improper Locking