CVE-2026-99228 in Linux
Riassunto
di VulDB • 02/11/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
io_uring/io-wq: non perdere il segnale che termina l'attività
Quando un thread termina, vengono annullati solo le sue richieste tracciate. Successivamente viene smontato (torn down) il suo io-wq. La funzione `io_wq_exit_workers()` invia un segnale a ogni worker per estrarlo da uno stato di sleep interruptible e attende che tutti terminino. Prima di farlo, elaborano l'attività residua. Le attività non limitate (unbounded work) vengono annullate. Le attività limitate (bounded work) vengono eseguite, poiché ci si aspetta che terminino autonomamente.
Non tutte le attività terminano correttamente. Un'operazione open non ha ancora un file associato, quindi viene considerata come bounded e l'open di una FIFO attende la controparte dall'altra estremità. È proprio per questo scopo che serve il segnale. Tuttavia i worker ricevono il segnale una sola volta e un worker che non ha iniziato a elaborare l'attività in quel momento perde il segnale:
io_wq_exit_workers() io_worker_handle_work() io_wq_worker_wake() set TIF_NOTIFY_SIGNAL io_assign_current_work() io_run_task_work() clear TIF_NOTIFY_SIGNAL io_wq_submit_work() fifo_open() wait_for_partner() wait_for_completion_timeout()
Il thread non esce mai da do_exit():
IORING_OP_OPENAT di una FIFO senza writer, IOSQE_ASYNC exit del thread che l'ha sottoposta (submitted)
si blocca nel più del 90% dei tentativi (4 CPU, KVM), fino a quando il processo non viene ucciso.
Impostare TIF_NOTIFY_SIGNAL per le attività limitate avviate con IO_WQ_BIT_EXIT impostato. Il bit è impostato prima che i worker vengano segnalati e viene verificato dopo che la flag è stata cancellata, con clear_notify_signal() che fornisce il barrier (barriera di memoria). Quindi o la flag rimane impostata oppure il bit viene rilevato.
Le attività avviate mentre io-wq sta uscendo vengono trattate come le attività in esecuzione in quel momento: non vengono interrotte a meno che non attendano in modo interruptible.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.