CVE-2023-52707 in Linux
Riassunto
di VulDB • 15/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
sched/psi: Correzione di un use-after-free in ep_remove_wait_queue()
Se una cgroup non root viene rimossa mentre esiste un thread che ha registrato un trigger ed esegue polling su un file delle pressioni all'interno della cgroup, l'attesa (waitqueue) per il polling viene liberata nel seguente percorso:
do_rmdir cgroup_rmdir kernfs_drain_open_files cgroup_file_release cgroup_pressure_release psi_trigger_destroy
Tuttavia, il thread in polling mantiene ancora un riferimento al file delle pressioni e accederà alla waitqueue già liberata quando il file viene chiuso o all'uscita:
fput ep_eventpoll_release ep_free ep_remove_wait_queue remove_wait_queue
Ciò provoca un use-after-free, come riportato di seguito.
Il problema fondamentale qui è che cgroup_file_release() (e conseguentemente la durata della waitqueue) non è vincolata alla reale durata del file. L'uso di wake_up_pollfree() in questo contesto potrebbe non essere ideale, ma è coerente con il commento presente nel commit 42288cb44c4b ("wait: add wake_up_pollfree()") poiché la durata della waitqueue non è vincolata a quella del file e può essere considerata un altro caso speciale. Sebbene questo potrebbe essere risolto rendendo in qualche modo cgroup_file_release() legato all'fput(), ciò richiederebbe una significativa rifattorizzazione a livello di cgroups o di livelli superiori, che sarebbe più giustificabile se venissero identificati altri casi simili.
BUG: KASAN: use-after-free in _raw_spin_lock_irqsave+0x60/0xc0 Write of size 4 at addr ffff88810e625328 by task a.out/4404
CPU: 19 PID: 4404 Comm: a.out Not tainted 6.2.0-rc6 #38
If you want to get best quality of vulnerability data, you may have to visit VulDB.