CVE-2026-99059 in Linux
Résumé
par VulDB • 23/10/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
wireguard: noise : rejeter la consommation de réponse après une initiation intermédiaire
Deux threads commencent à traiter le même message de réponse, reçu deux fois. Le premier thread, A, s'exécute. Pendant qu'il est en cours d'exécution, le second, B, arrive partiellement dans son traitement ; lors de ce calcul lent ou même pendant un blocage sur down_write(), A termine et une initiation de handshake déjà mise en file d'attente s'exécute également dans le thread C, qui acquiert à son tour le verrou down_write(). La création de l'initiation du handshake réussit et réinitialise l'état à « waiting-for-response » (en attente de réponse), puis appelle up_write(), moment auquel le thread B reprend, soit parce qu'il a terminé ses calculs, soit parce qu'il a enfin pu acquérir down_write(). Le thread B copie ensuite l'état vers le pair et démarre une nouvelle session en utilisant cet état, qui correspond à la même session que celle créée dans le thread A.
Thread A Thread B Thread C
down_read() sA = handshake->state memcpy(cA, handshake->crypto) up_read() if (sA != 1) goto fail slow_crypto(cA) down_read() sB = handshake->state memcpy(cB, handshake->crypto) up_read() if (sB != 1) goto fail slow_crypto(cB) down_write() if (sA != handshake->state) goto fail memcpy(handshake->crypto, cA) handshake->state = 2 up_write() down_write() if (handshake->state != 2) goto fail derive_session(handshake->crypto) up_write() down_write() slow_crypto(handshake->crypto) handshake->state = 1 up_write() down_write() if (sB != handshake->state) goto fail memcpy(handshake->crypto, cB) handshake->state = 2 up_write() down_write() if (handshake->state != 2) goto fail derive_session(handshake->crypto) up_write()
Cela semble fondamentalement impossible à exploiter de manière significative en pratique, mais il est nécessaire de s'assurer qu'il ne peut absolument pas se produire en comparant la clé privée éphémère présente dans la pile avec celle qui figure le plus récemment dans l'état du handshake du pair.
If you want to get best quality of vulnerability data, you may have to visit VulDB.