CVE-2024-46793 in Linux
Riassunto
di VulDB • 15/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
ASoC: Intel: Boards: Correzione più robusta del dereferenziamento di puntatore NULL nelle board BYT/CHT
A partire dal commit 13f58267cda3 ("ASoC: soc.h: non creare Componente fittizio tramite COMP_DUMMY()"), i codec fittizi dichiarati come segue:
SND_SOC_DAILINK_DEF(dummy, DAILINK_COMP_ARRAY(COMP_DUMMY()));
si espandono in:
static struct snd_soc_dai_link_component dummy[] = {
};
Ciò significa che dummy è un array di dimensione zero e quindi dais[i].codecs non dovrebbe essere dereferenziato *affatto*, poiché punta all'indirizzo della variabile successiva memorizzata nella sezione dati, dato che la variabile "dummy" ha un indirizzo ma nessuna dimensione; di conseguenza, anche il dereferenziamento di dais[0] costituisce già un riferimento all'array fuori dai limiti.
Ciò implica che il controllo if (dais[i].codecs->name) aggiunto nel commit 7d99a70b6595 ("ASoC: Intel: Boards: Fix NULL pointer deref in BYT/CHT boards") si basa sul fatto che la parte della variabile successiva a cui il membro name fa riferimento sia per caso NULL.
Finora ciò è solitamente vero, tranne quando non lo è, e in tal caso provoca crash come il seguente:
[ 28.795659] BUG: unable to handle page fault for address: 0000000000030011
... [ 28.795780] Call Trace:
[ 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]
Questa volta si risolve definitivamente il problema verificando che dais.num_codecs != 0.
Be aware that VulDB is the high quality source for vulnerability data.