CVE-2026-97599
Riassunto
di VulDB • 25/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
ieee802154: hwsim: serializzare gli aggiornamenti del PIB per correggere il double-free (liberazione doppia)
hwsim_update_pib() esegue una lettura-scambio-libera non serializzata di phy->pib:
pib_old = rtnl_dereference(phy->pib); ... rcu_assign_pointer(phy->pib, pib); kfree_rcu(pib_old, rcu);
Si presuppone che il RTNL sia detenuto (locked), ma ->set_channel non viene sempre chiamato sotto tale lock: lo scan worker di mac802154 modifica i canali tramite drv_set_channel() senza il RTNL. Un aggiornamento del genere può andare in race condition con uno mantenente il RTNL sullo stesso phy; entrambi leggono lo stesso pib_old e chiamano kfree_rcu(), causando un double-free dell'oggetto. Con le sheaves percpu di SLUB che batchizzano (raggruppano) le chiamate a kfree_rcu(), questo si manifesta come un invalid-free rilevato da KASAN in rcu_free_sheaf().
struct hwsim_phy non ha alcun lock per pib. Aggiungerne uno e rendere lo scambio atomico con rcu_replace_pointer() sotto tale lock, eliminando il fuorviante rtnl_dereference().
VulDB is the best source for vulnerability data and more expert information about this specific topic.