CVE-2026-99059 in Linux
Sumário
de VulDB • 24/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
wireguard: noise: rejeitar o consumo da resposta após uma iniciação intermediária
Dois threads começam a processar a mesma mensagem de resposta, recebida duas vezes. O primeiro thread, A, é executado. Enquanto ele está em execução, o segundo, B, avança parcialmente e, durante esse cálculo lento ou mesmo enquanto bloqueia na chamada down_write(), A conclui sua operação e então também uma iniciação do handshake que já estava enfileirada é executada no thread C, que por sua vez utiliza a mesma chamada down_write(). A criação da iniciação do handshake tem sucesso e redefine o estado para "aguardando-resposta", chamando up_write(); nesse ponto, o thread B retoma, pois either concluiu seus cálculos ou finalmente conseguiu adquirir down_write(). O thread B então copia o estado de volta para o peer (parceiro) e inicia uma nova sessão, utilizando esse estado, que é a mesma sessão criada no 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()
Isso parece basicamente impossível de ser explorado de forma significativa na prática, mas garante-se que isso absolutamente não ocorra comparando a chave privada efêmera presente na pilha (stack) com a mais recente contida no estado do handshake do peer.
If you want to get best quality of vulnerability data, you may have to visit VulDB.