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

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

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-476 Desreferencia a puntero nulo (NULL)
Fecha de publicación:
18/09/2024
Última modificación:
24/09/2024

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: ASoC: Intel: Placas: Arreglar la desreferenciación del puntero NULL en las placas BYT/CHT de forma más difícil Desde el commit 13f58267cda3 ("ASoC: soc.h: no crear un componente ficticio mediante COMP_DUMMY()"), los códecs ficticios se declaran de esta manera: SND_SOC_DAILINK_DEF(dummy, DAILINK_COMP_ARRAY(COMP_DUMMY())); expandir a: static struct snd_soc_dai_link_component dummy[] = { }; Lo que significa que dummy es una matriz de tamaño cero y, por lo tanto, dais[i].codecs no debería desreferenciarse *en absoluto*, ya que apunta a la dirección de la siguiente variable almacenada en la sección de datos, ya que la variable "ficticia" tiene una dirección pero no un tamaño, por lo que incluso desreferenciar dais[0] ya es una referencia de matriz fuera de límites. Esto significa que la comprobación if (dais[i].codecs->name) añadida en el commit 7d99a70b6595 ("ASoC: Intel: Boards: Fix NULL pointer deref in BYT/CHT boards") se basa en que la parte de la siguiente variable a la que se asigna el miembro name resulta ser NULL. Lo que aparentemente hasta ahora suele ser así, excepto cuando no lo es y entonces da como resultado fallos como este: [ 28.795659] ERROR: no se puede gestionar la falla de página para la dirección: 0000000000030011 ... [ 28.795780] Seguimiento de llamadas: [ 28.795787] ... [ 28.795862] ? strcmp+0x18/0x40 [ 28.795872] 0xffffffffc150c605 [ 28.795887] platform_probe+0x40/0xa0 ... [ 28.795979] ? __pfx_init_module+0x10/0x10 [snd_soc_sst_bytcr_wm5102] Esta vez realmente solucione las cosas comprobando que dais.num_codecs != 0.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.8 (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:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc6:*:*:*:*:*:*