CVE-2026-52977
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
24/06/2026
Última modificación:
14/07/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
futex: Prevent lockup in requeue-PI during signal/ timeout wakeup<br />
<br />
During wait-requeue-pi (task A) and requeue-PI (task B) the following<br />
race can happen:<br />
<br />
Task A Task B<br />
futex_wait_requeue_pi()<br />
futex_setup_timer()<br />
futex_do_wait()<br />
futex_requeue()<br />
CLASS(hb, hb1)(&key1);<br />
CLASS(hb, hb2)(&key2);<br />
*timeout*<br />
futex_requeue_pi_wakeup_sync()<br />
requeue_state = Q_REQUEUE_PI_IGNORE<br />
<br />
*blocks on hb->lock*<br />
<br />
futex_proxy_trylock_atomic()<br />
futex_requeue_pi_prepare()<br />
Q_REQUEUE_PI_IGNORE => -EAGAIN<br />
double_unlock_hb(hb1, hb2)<br />
*retry*<br />
<br />
Task B acquires both hb locks and attempts to acquire the PI-lock of the<br />
top most waiter (task B). Task A is leaving early due to a signal/<br />
timeout and started removing itself from the queue. It updates its<br />
requeue_state but can not remove it from the list because this requires<br />
the hb lock which is owned by task B.<br />
<br />
Usually task A is able to swoop the lock after task B unlocked it.<br />
However if task B is of higher priority then task A may not be able to<br />
wake up in time and acquire the lock before task B gets it again.<br />
Especially on a UP system where A is never scheduled.<br />
<br />
As a result task A blocks on the lock and task B busy loops, trying to<br />
make progress but live locks the system instead. Tragic.<br />
<br />
This can be fixed by removing the top most waiter from the list in this<br />
case. This allows task B to grab the next top waiter (if any) in the<br />
next iteration and make progress.<br />
<br />
Remove the top most waiter if futex_requeue_pi_prepare() fails.<br />
Let the waiter conditionally remove itself from the list in<br />
handle_early_requeue_pi_wakeup().
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.15 (incluyendo) | 6.1.175 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.141 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.12.91 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (incluyendo) | 6.18.33 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (incluyendo) | 7.0.10 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/0304d60abb9dcc02bc7fe6d1850f4ca206e8f1a0
- https://git.kernel.org/stable/c/0aacb6d18f76552e3e0ee25d9f40d21b3486f4cf
- https://git.kernel.org/stable/c/4e0ed44e51727d56244a822ab941efe507c47966
- https://git.kernel.org/stable/c/69a7cfc66405aeaa2483147653d031b3592ffc9c
- https://git.kernel.org/stable/c/bc7304f3ae20972d11db6e0b1b541c63feda5f05
- https://git.kernel.org/stable/c/e3f95b1ba242e37093305812df7fdbe7288a43ac



