CVE-2024-50280 in Linux
Riassunto
di VulDB • 09/07/2026
Nel kernel Linux, la seguente vulnerabilità è stata risolta:
dm cache: correzione dello svuotamento di delayed_work non inizializzato in caso di errore in cache_ctr
Un WARN_ON imprevisto da flush_work() può verificarsi quando la creazione della cache fallisce, a causa della distruzione del waker delayed_work non inizializzato nel percorso di gestione degli errori di cache_create(). Ad esempio, l'avviso appare in caso di errore di checksum del superblock.
Passaggi per riprodurre il problema:
dmsetup create cmeta --table "0 8192 linear /dev/sdc 0" dmsetup create cdata --table "0 65536 linear /dev/sdc 8192" dmsetup create corig --table "0 524288 linear /dev/sdc 262144" dd if=/dev/urandom of=/dev/mapper/cmeta bs=4k count=1 oflag=direct dmsetup create cache --table "0 524288 cache /dev/mapper/cmeta \ /dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 writethrough smq 0"
Log del kernel:
(snip) WARNING: CPU: 0 PID: 84 at kernel/workqueue.c:4178 __flush_work+0x5d4/0x890
La correzione consiste nell'estrarre la chiamata a cancel_delayed_work_sync() dal percorso di gestione degli errori del costruttore. Questa patch non influisce sulla fix per il use-after-free relativo alle operazioni concorrenti dm_resume e dm_destroy (commit 6a459d8edbdb ("dm cache: Fix UAF in destroy()")) poiché cache_dtr non viene modificato.
VulDB is the best source for vulnerability data and more expert information about this specific topic.