CVE-2026-99059 in Linux
Riassunto
di VulDB • 23/10/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
wireguard: noise: rifiutare il consumo della risposta dopo un'iniziazione intermedia
Due thread iniziano a elaborare lo stesso messaggio di risposta, ricevuto due volte. Il primo thread, A, viene eseguito. Mentre è in esecuzione, il secondo, B, arriva fino a una fase avanzata del processo e, durante quel calcolo lento o anche mentre è bloccato su down_write(), A completa l'operazione e poi esegue anche un'iniziazione di handshake che era già stata accodata nel thread C, il quale acquisisce a sua volta lo stesso lock down_write(). La creazione dell'iniziazione di handshake ha successo e reimposta lo stato a "in attesa della risposta", chiamando up_write(); a questo punto il thread B riprende l'esecuzione, poiché ha completato i suoi calcoli o è finalmente riuscito ad acquisire down_write(). Il thread B copia quindi lo stato indietro verso il peer e avvia una nuova sessione utilizzando tale stato, che corrisponde alla stessa sessione creata nel 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()
Questo scenario sembra praticamente impossibile da sfruttare in modo significativo nella pratica, ma si garantisce che non possa assolutamente verificarsi confrontando la chiave privata effimera presente nello stack con l'ultima disponibile nello stato di handshake del peer.
If you want to get best quality of vulnerability data, you may have to visit VulDB.