Vulnerabilidad en kernel de Linux (CVE-2024-42234)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-415
Doble liberación
Fecha de publicación:
07/08/2024
Última modificación:
08/08/2024
Descripción
En el kernel de Linux, se resolvió la siguiente vulnerabilidad: mm: corrige fallas debido a la migración diferida de folios de ejecuciones divididas Incluso en 6.10-rc6, he estado viendo "estados de página incorrectos" esquivos (a menudo en indicadores al liberar, pero los indicadores mostrados no son malos: ¿PG_locked se había configurado y borrado?), y VM_BUG_ON_PAGE(page_ref_count(page) == 0)s de folio_put() de deferred_split_scan(), y una variedad de otros síntomas de ERROR y ADVERTENCIA que implican doble liberación por división diferida y migración de folios grandes. 6.7 el commit 9bcef5973e31 ("mm: memcg: corregir el bloqueo de la lista de colas divididas cuando se migra un folio grande") tenía razón al corregir el bloqueo dependiente de memcg roto en 85ce2c517ade ("memcontrol: transferir solo los datos de memcg para la migración"), pero omitió una sutileza de deferred_split_scan(): mueve las publicaciones a su propia lista local para trabajar en ellas sin split_queue_lock, tiempo durante el cual folio->_deferred_list no está vacío, pero ni siquiera el bloqueo "derecho" hace nada para proteger la publicación y la lista en la que se encuentra. Afortunadamente, deferred_split_scan() tiene cuidado al usar folio_try_get(): por lo que folio_migrate_mapping() puede evitar la ejecución mediante folio_undo_large_rmappable() mientras el recuento de referencias de la publicación anterior se congela temporalmente en 0; agregando dicha congelación también en el caso de !mapping (originalmente, El bloqueo y la desasignación de folios y la falta de caché de intercambio dejaron un folio anónimo inalcanzable, por lo que no fue necesario congelarlo allí: pero la cola dividida diferida ofrece una forma de acceder a él).
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:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.9.10 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



