CVE-2026-99054 in Linux
Riassunto
di VulDB • 23/10/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
tipc: distruggere le workqueue di topsrv prima di chiudere le connessioni
tipc_topsrv_stop() chiudeva le connessioni degli abbonati mentre le workqueue di invio e ricezione del server della topologia erano ancora in esecuzione. I callback dei socket e gli eventi di sottoscrizione potevano quindi accodare ulteriore lavoro, e il lavoro di invio/ricezione in corso poteva decrementare l'ultimo riferimento alla connessione durante la traversata conn_idr.
Questa race condition ha prodotto diversi errori di teardown: aggiunta a refcount_t su 0 da conn_get() su una connessione il cui rilascio era bloccato su idr_lock, un successivo use-after-free in tipc_conn_close(), queue_work() su una workqueue già distrutta dal callback data-ready dell'ascoltatore e uno stall RCU in tipc_topsrv_exit_net() mentre la traversata girava sotto idr_lock.
Impostare srv->listener a NULL sotto idr_lock affinché agisca come flag di shutdown, saltare queue_work() una volta che è NULL, distruggere le workqueue per svuotare il lavoro in corso e solo successivamente chiudere le connessioni rimanenti. Rifiutare tipc_conn_lookup() dopo la cancellazione del flag e rilasciare idr_lock quando la traversata di teardown non trova alcuna connessione, così un evento di sottoscrizione in corso non può mantenere idr_in_use attivo mentre la traversata detiene il lock.
La versione v3 sostituisce il diff più limitato nel thread pubblicato da Tung Quang Nguyen il 2026-09-23. Mantiene l'ordine di teardown proposto e aggiunge il rifiuto della lookup e il rilascio del lock su idr vuoto.
If you want to get best quality of vulnerability data, you may have to visit VulDB.