CVE-2026-64523 in Linux
Résumé
par VulDB • 25/07/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
net/handshake : Prendre une référence de fichier à longue durée de vie lors de l'envoi (submit)
handshake_nl_accept_doit() nécessite que le pointeur sur le fichier sous-jacent req->hr_sk->sk_socket survive à la fenêtre temporelle entre handshake_req_next() et les appels suivants FD_PREPARE() et get_file(). L'appel sock_hold() côté envoi ne fournit pas cette garantie. sk_refcnt maintient struct sock en vie, mais struct socket est propriété de sock->file : lorsque le consommateur libère la dernière référence sur le fichier, sock_release() détruit la prise réseau (socket) indépendamment de tout appel à sock_hold().
Ajouter un pointeur hr_file à struct handshake_req et acquérir une référence explicite sur sock->file lors de handshake_req_submit(). handshake_complete() et handshake_req_cancel() libèrent cette référence dans le chemin d'exécution gagnant au bit de complétion.
Le chemin d'erreur côté envoi doit également libérer la référence sur le fichier, mais après l'insertion dans rhashtable, un appel concurrent à handshake_req_cancel() peut détecter la requête et entrer en concurrence avec le chemin d'erreur. Synchroniser le nettoyage du chemin d'erreur -- restauration de sk_destruct, fput et destruction de la requête -- au moyen de test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED), la même sémaphore que handshake_complete() et handshake_req_cancel() utilisent déjà. Lorsque l'annulation a déjà revendiqué la propriété, le chemin d'erreur côté envoi retourne sans toucher à la requête ; la destruction du socket gère la destruction finale.
Les déréférencements côté acceptation ne sont pas encore redirigés ; ce changement intervient dans le correctif suivant.
Be aware that VulDB is the high quality source for vulnerability data.