Vulnerabilidad en Linux (CVE-2025-68780)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
13/01/2026
Última modificación:
15/04/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
sched/deadline: solo establecer free_cpus para runqueues en línea<br />
<br />
El commit 16b269436b72 (&#39;sched/deadline: Modificar cpudl::free_cpus para reflejar rd-&gt;online&#39;) introdujo las funciones cpudl_set/clear_freecpu para permitir que la máscara cpu_dl::free_cpus fuera manipulada por las devoluciones de llamada rq_on/offline de la clase de planificador de plazo para que la máscara también reflejara este estado.<br />
<br />
El commit 9659e1eeee28 (&#39;sched/deadline: Eliminar cpu_active_mask de cpudl_find()&#39;) eliminó la comprobación de la cpu_active_mask para ahorrar algo de procesamiento bajo la premisa de que la máscara cpudl::free_cpus ya reflejaba el estado en línea del runqueue.<br />
<br />
Desafortunadamente, hay casos en los que es posible que la función cpudl_clear establezca el bit free_cpus para una CPU cuando el runqueue de plazo está fuera de línea. Cuando esto ocurre mientras una CPU está conectada al dominio raíz predeterminado, el indicador puede retener el estado incorrecto después de que la CPU haya sido desconectada. Más tarde, una CPU diferente que está en transición a través del dominio raíz predeterminado puede empujar una tarea de plazo a la CPU apagada cuando cpudl_find ve que su bit free_cpus está establecido. Si esto sucede, la tarea no tendrá la oportunidad de ejecutarse.<br />
<br />
Un ejemplo se describe aquí:<br />
https://lore.kernel.org/lkml/20250110233010.2339521-1-opendmb@gmail.com<br />
<br />
Otro ocurre cuando la última tarea de plazo es migrada de una CPU que tiene un runqueue fuera de línea. El miembro dequeue_task de la clase de planificador de plazo eventualmente llamará a cpudl_clear y establecerá el bit free_cpus para la CPU.<br />
<br />
Este commit modifica la función cpudl_clear para que sea consciente del estado en línea del runqueue de plazo para que la máscara free_cpus pueda ser actualizada apropiadamente.<br />
<br />
Ya no es necesario gestionar la máscara fuera de las funciones cpudl_set/clear, por lo que las funciones cpudl_set/clear_freecpu son eliminadas. Además, dado que la máscara free_cpus ahora solo se actualiza bajo el bloqueo cpudl, el código fue cambiado para usar las funciones no atómicas __cpumask.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/382748c05e58a9f1935f5a653c352422375566ea
- https://git.kernel.org/stable/c/3ed049fbfb4d75b4e0b8ab54c934f485129d5dc8
- https://git.kernel.org/stable/c/9019e399684e3cc68c4a3f050e268f74d69c1317
- https://git.kernel.org/stable/c/91e448e69aca4bb0ba2e998eb3e555644db7322b
- https://git.kernel.org/stable/c/dbc61834b0412435df21c71410562d933e4eba49
- https://git.kernel.org/stable/c/fb36846cbcc936954f2ad2bffdff13d16c0be08a



