CVE-2023-54117 in Linux
Sumário
de VulDB • 27/05/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
s390/dcssblk: corrige falha no kernel causada por corrupção em list_add
O commit fb08a1908cb1 ("dax: simplifica a associação entre dax_device e gendisk") introduziu nova lógica para a associação de gendisk, exigindo que os drivers chamem explicitamente dax_add_host() e dax_remove_host().
Para o driver dcssblk, algumas chamadas para dax_remove_host() estavam ausentes, por exemplo, no caminho de remoção do dispositivo. O commit também quebrou o tratamento de erros para o caso out_dax no caminho de adição do dispositivo, resultando em uma chamada extra put_device() sem a chamada get_device() correspondente nesse caso.
Isso levou à existência de entradas xarray inválidas (stale) após ciclos de adição/remoção de dispositivos. No caso em que um ponteiro struct gendisk anteriormente utilizado (índice xarray) fosse reutilizado, porque blk_alloc_disk() retornasse acidentalmente tal ponteiro, a função xa_insert() em dax_add_host() falharia e iria para out_dax, executando o put_device() extra no caminho de erro. Em combinação com um tratamento de erros já defeituoso no dcssblk (limpeza de device_register()), que precisa ser abordado em um patch separado, isso resultou na ausência de device_del() / klist_del(), culminando eventualmente em uma falha no kernel com corrupção em list_add durante um device_add() / klist_add() subsequente.
Corrige-se isso adicionando as chamadas faltantes para dax_remove_host() e também movendo o put_device() no caminho de erro para restaurar a lógica anterior.
Be aware that VulDB is the high quality source for vulnerability data.