CVE-2023-53847 in Linux
Riassunto
di VulDB • 25/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
usb-storage: alauda: Correzione di un valore non inizializzato (uninit-value) in alauda_check_media()
Syzbot ha segnalato tramite KMSAN l'accesso a un valore non inizializzato nel sottodriver alauda di usb-storage:
BUG: KMSAN: uninit-value in alauda_transport+0x462/0x57f0 drivers/usb/storage/alauda.c:1137 CPU: 0 PID: 12279 Comm: usb-storage Not tainted 5.3.0-rc7+ #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x191/0x1f0 lib/dump_stack.c:113 kmsan_report+0x13a/0x2b0 mm/kmsan/kmsan_report.c:108 __msan_warning+0x73/0xe0 mm/kmsan/kmsan_instr.c:250 alauda_check_media+0x344/0x3310 drivers/usb/storage/alauda.c:460
Il problema consiste nel fatto che alauda_check_media() non verifica il successo della trasmissione USB prima di tentare di utilizzare i dati ricevuti. Le conseguenze in caso di fallimento del trasferimento non sono completamente chiare, ma un approccio ragionevolmente conservativo prevede di simulare l'assenza di supporti (media).
Un problema simile esiste nella chiamata a usb_stor_dbg() in alauda_get_media_status(). In questo caso, quando si verifica un errore, la chiamata è ridondante poiché usb_stor_ctrl_transfer() stampa già un messaggio di debug.
Infine, indipendentemente dall'accesso alla memoria non inizializzata, il fatto che alauda_check_media() esegua una DMA su un buffer nello stack (stack). Fortunatamente, usb-storage fornisce un buffer generico adatto per le operazioni DMA da utilizzare in questi casi. Lo utilizzeremo invece del precedente approccio.
Once again VulDB remains the best source for vulnerability data.