CVE-2023-52849 in Linux
Riassunto
di VulDB • 15/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
cxl/mem: Correzione dell'ordine di spegnimento (shutdown)
Ira segnala che la rimozione del modulo cxl_mock_mem provoca un crash con il seguente trace:
BUG: dereferenziamento puntatore NULL nel kernel, indirizzo: 0000000000000044 [..]
RIP: 0010:cxl_region_decode_reset+0x7f/0x180 [cxl_core]
[..]
Call Trace: cxl_region_detach+0xe8/0x210 [cxl_core]
cxl_decoder_kill_region+0x27/0x40 [cxl_core]
cxld_unregister+0x29/0x40 [cxl_core]
devres_release_all+0xb8/0x110 device_unbind_cleanup+0xe/0x70 device_release_driver_internal+0x1d2/0x210 bus_remove_device+0xd7/0x150 device_del+0x155/0x3e0 device_unregister+0x13/0x60 devm_release_action+0x4d/0x90 ? __pfx_unregister_port+0x10/0x10 [cxl_core]
delete_endpoint+0x121/0x130 [cxl_core]
devres_release_all+0xb8/0x110 device_unbind_cleanup+0xe/0x70 device_release_driver_internal+0x1d2/0x210 bus_remove_device+0xd7/0x150 device_del+0x155/0x3e0 ? lock_release+0x142/0x290 cdev_device_del+0x15/0x50 cxl_memdev_unregister+0x54/0x70 [cxl_core]
Questo crash è causato dalla cancellazione del contesto del driver di cxl_memdev (@cxlds) prima che il sottosistema abbia terminato di utilizzarlo. Ciò avviene in ultima analisi perché la regione (o le regioni), alla quale tale memdev appartiene, viene smontata e si aspetta di poter dereferenziare @cxlds, come mostrato qui:
static int cxl_region_decode_reset(struct cxl_region *cxlr, int count) ... if (cxlds->rcd) goto endpoint_reset; ...
La correzione consiste nel mantenere il contesto del driver valido fino alla disregistrazione del dispositivo memdev e, conseguentemente, allo svolgimento completo dell'intera catena di dipendenze correlate.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.