Vulnerabilidad en kernel de Linux (CVE-2024-42152)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
30/07/2024
Última modificación:
09/08/2024
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: nvmet: corrige una posible fuga al destruir un ctrl durante el establecimiento de qp En nvmet_sq_destroy capturamos sq->ctrl temprano y si no es NULL sabemos que se asignó un ctrl (en el controlador de solicitudes de conexión de administrador) y necesitamos liberar los AER pendientes, borrar ctrl->sqs y sq->ctrl (principalmente para nvme-loop) y eliminar la referencia final en ctrl. Sin embargo, es posible una pequeña ventana donde se inicia nvmet_sq_destroy (como resultado de que el cliente se rinde y se desconecta) al mismo tiempo que el cmd de conexión del administrador de nvme (que puede estar en una etapa inicial). Pero *antes* de kill_and_confirm de sq->ref (es decir, la conexión del administrador logró obtener una referencia en vivo de sq). En este caso, se asignó sq->ctrl sin embargo después de ser capturado en una variable local en nvmet_sq_destroy. Esto evitó la caída de la referencia final en Ctrl. Resuelva esto volviendo a capturar sq->ctrl después de que se hayan completado todas las solicitudes en curso, donde con seguridad la referencia sq->ctrl es definitiva, y avance en función de eso. Este problema se observó en un entorno con muchos hosts que conectaban múltiples controles simultáneamente, lo que creaba un retraso en la asignación de un control que conducía a esta ventana de ejecución.
Impacto
Puntuación base 3.x
4.70
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.8 (incluyendo) | 5.10.222 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.163 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.98 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.39 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.9.9 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:6.10: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/2f3c22b1d3d7e86712253244797a651998c141fa
- https://git.kernel.org/stable/c/5502c1f1d0d7472706cc1f201aecf1c935d302d1
- https://git.kernel.org/stable/c/818004f2a380420c19872171be716174d4985e33
- https://git.kernel.org/stable/c/940a71f08ef153ef807f751310b0648d1fa5d0da
- https://git.kernel.org/stable/c/b4fed1443a6571d49c6ffe7d97af3bbe5ee6dff5
- https://git.kernel.org/stable/c/c758b77d4a0a0ed3a1292b3fd7a2aeccd1a169a4