Vulnerabilidad en kernel de Linux (CVE-2024-26924)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-476
Desreferencia a puntero nulo (NULL)
Fecha de publicación:
25/04/2024
Última modificación:
21/03/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: netfilter: nft_set_pipapo: no liberar elemento activo Pablo informa un bloqueo con grandes lotes de elementos con un patrón de agregar/eliminar consecutivos. Citando a Pablo: add_elem("00000000") timeout 100 ms ... add_elem("0000000X") timeout 100 ms del_elem("0000000X") <---------------- elimina uno que se acaba de agregar... add_elem("00005000") tiempo de espera 100 ms 1) nft_pipapo_remove() elimina el elemento 0000000X Luego, KASAN muestra un símbolo. Al observar la función de eliminación, existe la posibilidad de que eliminemos una regla que se asigne a un elemento no desactivado. La eliminación se realiza en dos pasos: primero buscamos la clave k, devolvemos el elemento que se va a eliminar y lo marcamos como inactivo en la próxima generación. Luego, en un segundo paso, el elemento se elimina del conjunto/mapa. La función _remove no funciona correctamente si tenemos más de un elemento que comparte la misma clave. Esto puede suceder si insertamos un elemento en un conjunto cuando el conjunto ya contiene un elemento con la misma clave, pero la asignación del elemento a la clave existente ha expirado o no está activa en la próxima generación. En tal caso, es posible que la eliminación desasigne el elemento incorrecto. Si esto sucede, filtraremos el elemento no desactivado, se vuelve inalcanzable. El elemento que se desactivó (y se liberará más adelante) permanecerá accesible en la estructura de datos establecida, lo que puede provocar un bloqueo cuando dicho elemento se recupere durante la búsqueda (puntero obsoleto). Agregue una verificación de que la clave que coincide completamente de hecho se asigna al elemento que hemos marcado como inactivo en el paso de desactivación. Si no, debemos seguir buscando. Agregue también una trampa de error/advertencia al final de la función; la función de eliminación nunca debe llamarse con un elemento invisible/inalcanzable/inexistente. v2: evitar variables temporales innecesarias (Stefano)
Impacto
Puntuación base 3.x
5.90
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.6 (incluyendo) | 5.10.216 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.157 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.88 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.29 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.8.8 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:* | ||
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/14b001ba221136c15f894577253e8db535b99487
- https://git.kernel.org/stable/c/3cfc9ec039af60dbd8965ae085b2c2ccdcfbe1cc
- https://git.kernel.org/stable/c/41d8fdf3afaff312e17466e4ab732937738d5644
- https://git.kernel.org/stable/c/7a1679e2d9bfa3b5f8755c2c7113e54b7d42bd46
- https://git.kernel.org/stable/c/e3b887a9c11caf8357a821260e095f2a694a34f2
- https://git.kernel.org/stable/c/ebf7c9746f073035ee26209e38c3a1170f7b349a
- https://git.kernel.org/stable/c/14b001ba221136c15f894577253e8db535b99487
- https://git.kernel.org/stable/c/3cfc9ec039af60dbd8965ae085b2c2ccdcfbe1cc
- https://git.kernel.org/stable/c/41d8fdf3afaff312e17466e4ab732937738d5644
- https://git.kernel.org/stable/c/7a1679e2d9bfa3b5f8755c2c7113e54b7d42bd46
- https://git.kernel.org/stable/c/e3b887a9c11caf8357a821260e095f2a694a34f2
- https://git.kernel.org/stable/c/ebf7c9746f073035ee26209e38c3a1170f7b349a
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html