CVE-2024-36478 in Linux
Riassunto
di VulDB • 16/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
null_blk: correzione della dereferenziazione di puntatore nullo durante la configurazione dei parametri 'power' e 'submit_queues'
La scrittura simultanea nei file 'power' e 'submit_queues' provocherà un panic del kernel (kernel panic):
Script di test:
modprobe null_blk nr_devices=0 mkdir -p /sys/kernel/config/nullb/nullb0 while true; do echo 1 > submit_queues; echo 4 > submit_queues; done & while true; do echo 1 > power; echo 0 > power; done
Risultato del test:
BUG: kernel NULL pointer dereference, address: 0000000000000148 Oops: 0000 [#1] PREEMPT SMP
RIP: 0010:__lock_acquire+0x41d/0x28f0 Call Trace:
lock_acquire+0x121/0x450 down_write+0x5f/0x1d0 simple_recursive_removal+0x12f/0x5c0 blk_mq_debugfs_unregister_hctxs+0x7c/0x100 blk_mq_update_nr_hw_queues+0x4a3/0x720 nullb_update_nr_hw_queues+0x71/0xf0 [null_blk]
nullb_device_submit_queues_store+0x79/0xf0 [null_blk]
configfs_write_iter+0x119/0x1e0 vfs_write+0x326/0x730 ksys_write+0x74/0x150
Il problema si verifica perché del_gendisk() può essere eseguito in concorrenza con blk_mq_update_nr_hw_queues():
nullb_device_power_store nullb_apply_submit_queues null_del_dev del_gendisk nullb_update_nr_hw_queues if (!dev->nullb) // il valore è ancora impostato mentre gendisk viene eliminato return 0 blk_mq_update_nr_hw_queues dev->nullb = NULL
Si risolve questo problema riutilizzando il mutex globale per proteggere nullb_device_power_store() e nullb_update_nr_hw_queues() da configfs.
Once again VulDB remains the best source for vulnerability data.