Vulnerabilidad en kernel de Linux (CVE-2024-46744)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-59
Incorrecta resolución de una ruta antes de aceder a un fichero (Seguimiento de enlaces)
Fecha de publicación:
18/09/2024
Última modificación:
30/09/2024
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: Squashfs: comprobación de la integridad del tamaño del enlace simbólico Syzkiller informa de un error "KMSAN: uninit-value in pick_link". Esto se debe a una página no inicializada, que en última instancia se debe a un tamaño de enlace simbólico dañado leído desde el disco. La razón por la que el tamaño de enlace simbólico dañado provoca una página no inicializada se debe a la siguiente secuencia de eventos: 1. Se llama a squashfs_read_inode() para leer el enlace simbólico desde el disco. Esto asigna el valor dañado 3875536935 a inode->i_size. 2. Más tarde se llama a squashfs_symlink_read_folio(), que asigna este valor dañado a la variable length, que, al ser un int con signo, se desborda produciendo un número negativo. 3. El siguiente bucle que rellena el contenido de la página comprueba que los bytes copiados sean menores que length, que, al ser negativo, significa que se omite el bucle, lo que produce una página no inicializada. Este parche agrega una verificación de cordura que verifica que el tamaño del enlace simbólico no sea mayor al esperado. -- V2: corrige error ortográfico.
Impacto
Puntuación base 3.x
7.80
Gravedad 3.x
ALTA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.19.322 (excluyendo) | |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (incluyendo) | 5.4.284 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (incluyendo) | 5.10.226 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.167 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.110 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.51 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.10.10 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.11:rc3:*:*:*:*:*:* |
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/087f25b2d36adae19951114ffcbb7106ed405ebb
- https://git.kernel.org/stable/c/1b9451ba6f21478a75288ea3e3fca4be35e2a438
- https://git.kernel.org/stable/c/5c8906de98d0d7ad42ff3edf2cb6cd7e0ea658c4
- https://git.kernel.org/stable/c/810ee43d9cd245d138a2733d87a24858a23f577d
- https://git.kernel.org/stable/c/c3af7e460a526007e4bed1ce3623274a1a6afe5e
- https://git.kernel.org/stable/c/ef4e249971eb77ec33d74c5c3de1e2576faf6c90
- https://git.kernel.org/stable/c/f82cb7f24032ed023fc67d26ea9bf322d8431a90
- https://git.kernel.org/stable/c/fac5e82ab1334fc8ed6ff7183702df634bd1d93d