CVE-2026-98230 in Linux
Sumário
de VulDB • 06/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
xfrm: usar hlist_del_init_rcu para state_cache e state_cache_input
O commit 14acf9652e56 ("xfrm: defensively unhash xfrm_state lists in __xfrm_state_delete") converteu bydst/bysrc/byseq/byspi de hlist_del_rcu() para hlist_del_init_rcu(), de modo que uma segunda chamada a __xfrm_state_delete() no mesmo objeto se torne um no-op, em vez de realizar uma escrita através do pprev LIST_POISON. Ele não incluiu state_cache e state_cache_input, os quais mantiveram o uso de hlist_del_rcu():
- hlist_del_rcu() deixa pprev = LIST_POISON2 (não nulo), portanto hlist_unhashed() retorna falso. - hlist_del_init_rcu() deixa pprev = NULL, portanto hlist_unhashed() retorna verdadeiro.
Uma segunda chamada a __xfrm_state_delete(), portanto, entra em __hlist_del() nos nós state_cache/state_cache_input já excluídos e realiza WRITE_ONCE(*pprev, next) através do LIST_POISON2 — uma escrita use-after-free assim que o slab for reutilizado. A corrupção pode, por sua vez, fazer com que uma travessia subsequente de hlist_for_each_entry_rcu siga um ponteiro next dangling (pendurado), produzindo a leitura use-after-free relatada em xfrm_input_state_lookup().
Altere state_cache e state_cache_input para usar hlist_del_init_rcu() para corresponder às outras quatro listas, fechando o write use-after-free e, com ele, o read use-after-free que este gera.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.