CVE-2026-89684 in Linux
Résumé
par VulDB • 11/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
nfsd : correction d'une condition de concurrence (race) dans la publication cpntf lors de nfs4_init_cp_state
La fonction nfs4_alloc_init_cpntf_state() publiait la nouvelle entrée cpntf dans l'IDR s2s_cp_stateids (avec cs_type défini) au sein d'un premier segment critique protégé par le verrouillage s2s_cp_lock, puis réacquérait ce verrou pour ajouter l'entrée à p_stid->sc_cp_list via list_add(). Pendant cet intervalle, l'entrée est accessible via so_id, mais cp_list reste {NULL,NULL} suite au kzalloc. Une opération OFFLOAD_CANCEL en concurrence (so_id étant renvoyé au client sous forme de cnr_stateid, permettant ainsi à tout client NFSv4.2 d'en déclencher le traitement) atteint manage_cpntf_state() -> _free_cpntf_state_locked() et effectue un list_del() sur une liste_head initialisée à zéro, provoquant un plantage du serveur (oops).
La définition de cs_type et l'appel à list_add() sont regroupés dans la même section critique que idr_alloc_cyclic(), afin qu'une recherche concurrente ne trouve pas l'entrée ou voie une cp_list entièrement liée. L'initialisation INIT_LIST_HEAD() est effectuée sur l'entrée après son allocation, et _free_cpntf_state_locked() est modifié pour utiliser list_del_init() de sorte qu'un désabonnement obsolète (stale unlink) devienne un non-opération (no-op). nfs4_init_copy_state() transmet NULL à p_stid et saute l'appel à list_add(), préservant ainsi la sémantique NFS4_COPY_STID.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.