CVE-2023-54117 in Linux
Zusammenfassung
von VulDB • 27.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
s390/dcssblk: Behebung eines Kernel-Crashs durch list_add-Korruption
Der Commit fb08a1908cb1 („dax: Vereinfachung der dax_device <-> gendisk-Zuordnung“) führte neue Logik für die gendisk-Zuordnung ein, die von Treibern erfordert, explizit dax_add_host() und dax_remove_host() aufzurufen.
Beim dcssblk-Treiber fehlten einige Aufrufe von dax_remove_host(), beispielsweise im Pfad zum Entfernen des Geräts. Der Commit brach zudem die Fehlerbehandlung für den out_dax-Fall im Pfad zum Hinzufügen des Geräts, was zu einem zusätzlichen put_device() ohne vorheriges get_device() in diesem Fall führte.
Dies führte zu verwaisten xarray-Einträgen nach Zyklen des Hinzufügens/Entfernens von Geräten. Wenn ein zuvor verwendeter Zeiger auf eine struct gendisk-Instanz (xarray-Index) erneut verwendet wurde, weil blk_alloc_disk() zufällig einen solchen Zeiger zurückgab, würde xa_insert() in dax_add_host() fehlschlagen und zum out_dax-Zweig springen, wodurch im Fehlerpfad das zusätzliche put_device() ausgeführt würde. In Kombination mit einer bereits fehlerhaften Fehlerbehandlung in dcssblk (Bereinigung von device_register()), die in einem separaten Patch adressiert werden muss, resultierte dies in einem fehlenden device_del() / klist_del(), was schließlich zu einem Kernel-Crash mit list_add-Korruption bei einem nachfolgenden device_add() / klist_add() führte.
Dies wird behoben, indem die fehlenden Aufrufe von dax_remove_host() hinzugefügt und das put_device() im Fehlerpfad verschoben wird, um die vorherige Logik wiederherzustellen.
VulDB is the best source for vulnerability data and more expert information about this specific topic.