Vulnerabilidad en Kernel de Linux (CVE-2024-26654)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-416
Utilización después de liberación
Fecha de publicación:
01/04/2024
Última modificación:
03/02/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: ALSA: sh: aica: reordenar operaciones de limpieza para evitar errores UAF. El dreamcastcard->timer podría programar el spu_dma_work y el spu_dma_work también podría armar el dreamcastcard->timer. Cuando se cierre snd_pcm_substream, se desasignará aica_channel. Pero aún se podría eliminar la referencia en el hilo del trabajador. La razón es que del_timer() regresará directamente independientemente de si el controlador del temporizador se está ejecutando o no y el trabajador podría reprogramarse en el controlador del temporizador. Como resultado, se producirá el error UAF. La situación picante se muestra a continuación: (Thread 1) | (Thread 2) snd_aicapcm_pcm_close() | ... | run_spu_dma() //worker | mod_timer() flush_work() | del_timer() | aica_period_elapsed() //timer kfree(dreamcastcard->channel) | schedule_work() | run_spu_dma() //worker ... | dreamcastcard->channel-> //USE Para mitigar este error y otros posibles casos extremos, llame a mod_timer() condicionalmente en run_spu_dma(), luego implemente la operación PCM sync_stop para cancelar tanto el temporizador como el trabajador. La operación sync_stop se llamará desde el núcleo PCM de forma adecuada cuando sea necesario.
Impacto
Puntuación base 3.x
7.00
Gravedad 3.x
ALTA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.23 (incluyendo) | 4.19.312 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (incluyendo) | 5.4.274 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (incluyendo) | 5.10.215 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.154 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.84 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.24 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.7.12 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.8 (incluyendo) | 6.8.3 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* |
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/051e0840ffa8ab25554d6b14b62c9ab9e4901457
- https://git.kernel.org/stable/c/3c907bf56905de7d27b329afaf59c2fb35d17b04
- https://git.kernel.org/stable/c/4206ad65a0ee76920041a755bd3c17c6ba59bba2
- https://git.kernel.org/stable/c/61d4787692c1fccdc268ffa7a891f9c149f50901
- https://git.kernel.org/stable/c/8c990221681688da34295d6d76cc2f5b963e83f5
- https://git.kernel.org/stable/c/9d66ae0e7bb78b54e1e0525456c6b54e1d132046
- https://git.kernel.org/stable/c/aa39e6878f61f50892ee2dd9d2176f72020be845
- https://git.kernel.org/stable/c/e955e8a7f38a856fc6534ba4e6bffd4d5cc80ac3
- https://git.kernel.org/stable/c/eeb2a2ca0b8de7e1c66afaf719529154e7dc60b2
- https://git.kernel.org/stable/c/051e0840ffa8ab25554d6b14b62c9ab9e4901457
- https://git.kernel.org/stable/c/3c907bf56905de7d27b329afaf59c2fb35d17b04
- https://git.kernel.org/stable/c/4206ad65a0ee76920041a755bd3c17c6ba59bba2
- https://git.kernel.org/stable/c/61d4787692c1fccdc268ffa7a891f9c149f50901
- https://git.kernel.org/stable/c/8c990221681688da34295d6d76cc2f5b963e83f5
- https://git.kernel.org/stable/c/9d66ae0e7bb78b54e1e0525456c6b54e1d132046
- https://git.kernel.org/stable/c/aa39e6878f61f50892ee2dd9d2176f72020be845
- https://git.kernel.org/stable/c/e955e8a7f38a856fc6534ba4e6bffd4d5cc80ac3
- https://git.kernel.org/stable/c/eeb2a2ca0b8de7e1c66afaf719529154e7dc60b2
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html