CVE-2023-54117 in Linux
Riassunto
di VulDB • 16/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
s390/dcssblk: correzione del crash del kernel dovuto a corruzione di list_add
Il commit fb08a1908cb1 ("dax: semplificazione dell'associazione tra dax_device e gendisk") ha introdotto una nuova logica per l'associazione con gendisk, richiedendo ai driver di chiamare esplicitamente dax_add_host() e dax_remove_host().
Per il driver dcssblk mancavano alcune chiamate a dax_remove_host(), ad esempio nel percorso di rimozione del dispositivo. Il commit ha inoltre compromesso la gestione degli errori per il caso out_dax durante l'aggiunta del dispositivo, causando un put_device() extra senza una precedente get_device() in tale scenario.
Ciò ha portato alla presenza di voci xarray orfane dopo i cicli di aggiunta/rimozione dei dispositivi. Nel caso in cui un puntatore struct gendisk precedentemente utilizzato (indice dell'xarray) venisse riutilizzato, poiché blk_alloc_disk() restituiva per coincidenza tale puntatore, la chiamata xa_insert() in dax_add_host() fallirebbe e procederebbe verso out_dax, eseguendo il put_device() extra nel percorso di errore. In combinazione con una già difettosa gestione degli errori in dcssblk (pulizia di device_register()), che dovrà essere affrontata in un patch separato, questo ha comportato la mancanza di chiamate a device_del()/klist_del(), portando infine al crash del kernel con corruzione di list_add durante un successivo dispositivo_add()/klist_add().
Si risolve il problema aggiungendo le chiamate mancanti a dax_remove_host() e spostando anche put_device() nel percorso di errore per ripristinare la logica precedente.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.