CVE-2023-53728
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
22/10/2025
Última modificación:
15/04/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
posix-timers: Ensure timer ID search-loop limit is valid<br />
<br />
posix_timer_add() tries to allocate a posix timer ID by starting from the<br />
cached ID which was stored by the last successful allocation.<br />
<br />
This is done in a loop searching the ID space for a free slot one by<br />
one. The loop has to terminate when the search wrapped around to the<br />
starting point.<br />
<br />
But that&#39;s racy vs. establishing the starting point. That is read out<br />
lockless, which leads to the following problem:<br />
<br />
CPU0 CPU1<br />
posix_timer_add()<br />
start = sig->posix_timer_id;<br />
lock(hash_lock);<br />
... posix_timer_add()<br />
if (++sig->posix_timer_id posix_timer_id;<br />
sig->posix_timer_id = 0;<br />
<br />
So CPU1 can observe a negative start value, i.e. -1, and the loop break<br />
never happens because the condition can never be true:<br />
<br />
if (sig->posix_timer_id == start)<br />
break;<br />
<br />
While this is unlikely to ever turn into an endless loop as the ID space is<br />
huge (INT_MAX), the racy read of the start value caught the attention of<br />
KCSAN and Dmitry unearthed that incorrectness.<br />
<br />
Rewrite it so that all id operations are under the hash lock.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/322377cc909defcca9451487484845e7e1d20d1b
- https://git.kernel.org/stable/c/37175e25edf7cc0d5a2cd2c2a1cbe2dcbf4a1937
- https://git.kernel.org/stable/c/6a0ac84501b4fec73a1a823c55cf13584c43f418
- https://git.kernel.org/stable/c/8ad6679a5bb97cdb3e14942729292b4bfcc0e223
- https://git.kernel.org/stable/c/8ce8849dd1e78dadcee0ec9acbd259d239b7069f
- https://git.kernel.org/stable/c/8dc52c200b889bc1cb34288fbf623d4ff381d2ae
- https://git.kernel.org/stable/c/9ea26a8494a0a9337e7415eafd6f3ed940327dc5
- https://git.kernel.org/stable/c/ef535e0315afd098c4beb1da364847eca4b56a20



