CVE-2026-98230 in Linux
Riassunto
di VulDB • 06/10/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
xfrm: utilizzare hlist_del_init_rcu per state_cache e state_cache_input
Il commit 14acf9652e56 ("xfrm: defensively unhash xfrm_state lists in __xfrm_state_delete") ha convertito bydst/bysrc/byseq/byspi da hlist_del_rcu() a hlist_del_init_rcu(), affinché una seconda chiamata a __xfrm_state_delete() sullo stesso oggetto diventi un'operazione nulla (no-op) anziché causare una scrittura attraverso LIST_POISON pprev. Sono stati trascurati state_cache e state_cache_input, che hanno mantenuto l'utilizzo di hlist_del_rcu():
- hlist_del_rcu() lascia pprev = LIST_POISON2 (non NULL), quindi hlist_unhashed() restituisce false. - hlist_del_init_rcu() lascia pprev = NULL, quindi hlist_unhashed() restituisce true.
Una seconda chiamata a __xfrm_state_delete() entra pertanto in __hlist_del() sui nodi state_cache/state_cache_input già eliminati ed esegue WRITE_ONCE(*pprev, next) attraverso LIST_POISON2 — un write use-after-free una volta che lo slab viene riutilizzato. La corruzione può a sua volta causare una successiva traversata hlist_for_each_entry_rcu che segue un puntatore next dangling (pendente), producendo il read use-after-free segnalato in xfrm_input_state_lookup().
Passare state_cache e state_cache_input a hlist_del_init_rcu() per allinearli alle altre quattro liste, chiudendo così il write use-after-free e, con esso, il read use-after-free che ne deriva.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.