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

Vulnerabilidad en kernel de Linux (CVE-2021-47369)

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-476 Desreferencia a puntero nulo (NULL)
Fecha de publicación:
21/05/2024
Última modificación:
02/04/2025

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: s390/qeth: corrige NULL deref en qeth_clear_working_pool_list(). Cuando qeth_set_online() llama a qeth_clear_working_pool_list() para retroceder después de una salida de error de qeth_hardsetup_card(), corremos el riesgo de acceder a la tarjeta ->qdio.in_q antes de que qeth_alloc_qdio_queues() lo asignara mediante qeth_mpc_initialize(). qeth_clear_working_pool_list() luego elimina la referencia a NULL y, al escribir en queue->bufs[i].pool_entry garabatea por todo el núcleo bajo de la CPU. Lo que resulta en un bloqueo cuando esas áreas de núcleo bajo se usan a continuación (por ejemplo, en la siguiente interrupción de verificación de la máquina). Este escenario suele ocurrir cuando el dispositivo se configura en línea por primera vez y sus colas aún no están asignadas. Un error de IO temprano o ciertas configuraciones erróneas (por ejemplo, modo de transporte no coincidente, número de puerto incorrecto) hacen que salgamos del error qeth_hardsetup_card() con card->qdio.in_q todavía siendo NULL. Solucionarlo comprobando que el puntero sea NULL antes de acceder a él. Tenga en cuenta que también tenemos rutas (raras) dentro de qeth_mpc_initialize() donde un cambio de configuración puede hacer que liberemos las colas existentes, esperando que el código posterior las asigne nuevamente. Si luego cometemos un error antes de que ocurra la reasignación, ocurre el mismo error. Analizado por: Heiko Carstens

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.7.16 (incluyendo) 5.8 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.8.2 (incluyendo) 5.10.70 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (incluyendo) 5.14.9 (excluyendo)
cpe:2.3:o:linux:linux_kernel:5.15:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.15:rc2:*:*:*:*:*:*