Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en kernel de Linux (CVE-2024-50278)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-125 Lectura fuera de límites
Fecha de publicación:
19/11/2024
Última modificación:
27/11/2024

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: dm cache: fix potential out-of-limits access on the first resume El acceso fuera de los límites ocurre si el dispositivo rápido se expande inesperadamente antes de la primera reanudación de la tabla de caché. Esto sucede porque expandir el dispositivo rápido requiere volver a cargar la tabla de caché para que cache_create asigne nuevas estructuras de datos en el núcleo que se ajusten al nuevo tamaño, y la verificación en cache_preresume no se realiza durante la primera reanudación, lo que genera el problema. Reproducir pasos: 1. preparar los dispositivos componentes: dmsetup create cmeta --table "0 8192 linear /dev/sdc 0" dmsetup create cdata --table "0 65536 linear /dev/sdc 8192" dmsetup create corig --table "0 524288 linear /dev/sdc 262144" dd if=/dev/zero of=/dev/mapper/cmeta bs=4k count=1 oflag=direct 2. cargar una tabla de caché de 512 bloques de caché y expandir deliberadamente el dispositivo rápido antes de reanudar el caché, lo que hace que las estructuras de datos en el núcleo sean inadecuadas. dmsetup create cache --notable dmsetup reload cache --table "0 524288 cache /dev/mapper/cmeta \ /dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 writethrough smq 0" dmsetup reload cdata --table "0 131072 linear /dev/sdc 8192" dmsetup resume cdata dmsetup resume cache 3. suspende la caché para escribir el conjunto de bits sucios en el núcleo y la matriz de sugerencias, lo que genera un acceso fuera de los límites al conjunto de bits sucios en el desplazamiento 0x40: dmsetup suspend cache KASAN informa: ERROR: KASAN: vmalloc-out-of-bounds en is_dirty_callback+0x2b/0x80 Lectura de tamaño 8 en la dirección ffffc90000085040 por la tarea dmsetup/90 (...snip...) La dirección con errores pertenece al mapeo virtual en [ffffc90000085000, ffffc90000087000) creado por: cache_ctr+0x176a/0x35f0 (...snip...) Estado de la memoria alrededor de la dirección con errores: ffffc90000084f00: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 ffffc90000084f80: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 >ffffc90000085000: 00 00 00 00 00 00 00 00 f8 f8 f8 f8 f8 f8 f8 f8 f8 ^ ffffc90000085080: f8 ...

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 3.13 (incluyendo) 4.19.324 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.20 (incluyendo) 5.4.286 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (incluyendo) 5.10.230 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (incluyendo) 5.15.172 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (incluyendo) 6.1.117 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (incluyendo) 6.6.61 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.11.8 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc6:*:*:*:*:*:*