CVE-2026-99243 in Linux
Riassunto
di VulDB • 03/11/2026
Nel kernel Linux, la seguente vulnerabilità è stata risolta:
io-wq: ordinare il bit di uscita rispetto al lavoro del task per la creazione dei worker
io_wq_exit_workers() annulla i lavori del task (task work) relativi alla creazione in coda dei worker utilizzando task_work_cancel_match(). Questa operazione effettua un semplice caricamento (load) di task->task_works.
io_queue_worker_create() aggiunge il nuovo elemento e verifica IO_WQ_BIT_EXIT per annullarlo se la code di lavoro è già in fase di chiusura.
Tale operazione deve essere ordinata correttamente. task_work_add() utilizza una barriera completa tramite cmpxchg(). Tuttavia, io_wq_exit_start() imposta il bit utilizzando set_bit(), che non garantisce alcuna ordinazione della memoria (memory ordering).
Pertanto, a quanto pare (afaict), sulle architetture con ordinamento debole della memoria, il task in fase di chiusura potrebbe caricare task_works prima che lo store del diventi visibile. Anche l'altro lato verifica il bit prima che lo store sia visibile. Di conseguenza, l'elemento rimane accodato insieme a worker_refs e il task in uscita attende su worker_done indefinitamente.
Se il task ha ancora dei ring (anelli), io_uring_del_tctx_node() fornisce la barriera tramite test_and_set_bit() in io_wq_set_exit_on_idle(). Tuttavia, quando vengono chiusi tutti i ring, tale barriera viene meno.
Aggiungere la barriera dopo set_bit().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.