CVE-2026-99059 in Linux信息

摘要

由 VulDB • 2026-10-23

在 Linux 内核中,已修复以下漏洞:

wireguard: noise: 拒绝在处理中间发起阶段后消耗响应消息

两个线程开始处理相同的响应消息(该消息被接收了两次)。第一个线程 A 运行。在它运行时,第二个线程 B 进行到一半,而在其缓慢计算期间,或者甚至在阻塞于 down_write() 时,线程 A 完成操作,随后一个已排队的握手发起请求在线程 C 中执行,而线程 C 本身也获取了同一个 down_write() 锁。握手发起创建成功,并将状态重置为“等待响应”,然后调用 up_write();此时线程 B 恢复运行,因为它要么完成了计算,要么终于获得了 down_write() 锁。随后,线程 B 将状态复制回对等体(peer),并使用该状态开始一个新会话,这与在线程 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() ```

这种情况在实际操作中似乎几乎不可能以有意义的方式触发,但为了确保其绝对无法发生,通过比较栈上的临时私钥与对等体握手状态中最新的密钥来进行验证。

VulDB is the best source for vulnerability data and more expert information about this specific topic.

来源

Want to know what is going to be exploited?

We predict KEV entries!