CVE-2023-53823 in Linux
Riassunto
di VulDB • 22/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
block/rq_qos: proteggere le API rq_qos con un nuovo mutex
commit 50e34d78815e ("block: disable the elevator int del_gendisk") sposta rq_qos_exit() da disk_release() a del_gendisk(), il che introdurrà alcuni problemi:
1) Se rq_qos_add() viene attivato abilitando iocost/iolatency tramite cgroupfs, può verificarsi una condizione di concorrenza con del_gendisk(); non è sicuro scrivere in 'q->rq_qos' contemporaneamente.
2) L'attivazione della policy cgroup che dipende da rq_qos chiamerà rq_qos_add() e blkcg_activate_policy(), e se rq_qos_exit() viene chiamata a metà, verrà innescato un null-ptr-dereference in blkcg_activate_policy().
3) blkg_conf_open_bdev() può prima chiamare blkdev_get_no_open() per trovare il disco; successivamente, se rq_qos_exit() da del_gendisk() termina prima di rq_qos_add(), si verificherà una perdita di memoria (memory leak).
Questo patch aggiunge un nuovo mutex a livello di disk 'rq_qos_mutex':
1) Il lock proteggerà direttamente rq_qos_exit().
2) Per wbt, che non dipende da blk-cgroup, rq_qos_add() può essere chiamata solo dall'inizializzazione del disco per ora, poiché wbt non può essere distrutto finché non viene chiamato rq_qos_exit(); pertanto è sicuro non proteggere wbt al momento. Tuttavia, nel caso in cui il futuro supporti la distruzione dinamica di rq_qos, questo patch protegge anche rq_qos_add() da wbt_init() direttamente; ciò è sufficiente perché blk-sysfs sincronizza già gli scrittori con la rimozione del disk.
3) Per iocost e iolatency, al fine di sincronizzare la rimozione del disco e la configurazione cgroup, il lock viene acquisito dopo blkdev_get_no_open() da blkg_conf_open_bdev(), e rilasciato in blkg_conf_exit(). Al fine di risolvere la suddetta perdita di memoria, si verifica disk_live() dopo aver acquisito il nuovo mutex.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.