<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 27 Oct 2026 16:40:49 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-99059 — wireguard: noise: reject response consumption after intermediate initiation</title>
      <link>https://db.gcve.eu/vuln/cve-2026-99059</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;wireguard: noise: reject response consumption after intermediate initiation&lt;/p&gt;
&lt;p&gt;Two threads begin processing the identical response message, received
twice. The first thread, A, runs. While it&amp;#39;s running, the second one,
B, gets partway through, and during that slow calculation, or even while
blocking on down_write(), A completes and then also a handshake
initiation that&amp;#39;s already been queued up runs in thread C, which itself
takes that same down_write(). The handshake initiation creation
succeeds, and sets the state back to waiting-for-response, and calls
up_write(), at which point thread B resumes, because either its finished
its calculations or was finally allowed to acquire down_write(). Thread
B then copies the state back to the peer, and begins a new session,
using that state, which is the same session as the one made in thread A.&lt;/p&gt;
&lt;p&gt;Thread A			Thread B			Thread C&lt;/p&gt;
&lt;p&gt;down_read()
 sA = handshake-&amp;gt;state
 memcpy(cA, handshake-&amp;gt;crypto)
up_read()
if (sA != 1)
 goto fail
slow_crypto(cA)
				down_read()
				 sB = handshake-&amp;gt;state
				 memcpy(cB, handshake-&amp;gt;crypto)
				up_read()
				if (sB != 1)
				 goto fail
				slow_crypto(cB)
down_write()
 if (sA != handshake-&amp;gt;state)
  goto fail
 memcpy(handshake-&amp;gt;crypto, cA)
 handshake-&amp;gt;state = 2
up_write()
down_write()
 if (handshake-&amp;gt;state != 2)
  goto fail
 derive_session(handshake-&amp;gt;crypto)
up_write()
								down_write()
								 slow_crypto(handshake-&amp;gt;crypto)
								 hands…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;wireguard: noise: reject response consumption after intermediate initiation&lt;/p&gt;
&lt;p&gt;Two threads begin processing the identical response message, received
twice. The first thread, A, runs. While it&amp;#39;s running, the second one,
B, gets partway through, and during that slow calculation, or even while
blocking on down_write(), A completes and then also a handshake
initiation that&amp;#39;s already been queued up runs in thread C, which itself
takes that same down_write(). The handshake initiation creation
succeeds, and sets the state back to waiting-for-response, and calls
up_write(), at which point thread B resumes, because either its finished
its calculations or was finally allowed to acquire down_write(). Thread
B then copies the state back to the peer, and begins a new session,
using that state, which is the same session as the one made in thread A.&lt;/p&gt;
&lt;p&gt;Thread A			Thread B			Thread C&lt;/p&gt;
&lt;p&gt;down_read()
 sA = handshake-&amp;gt;state
 memcpy(cA, handshake-&amp;gt;crypto)
up_read()
if (sA != 1)
 goto fail
slow_crypto(cA)
				down_read()
				 sB = handshake-&amp;gt;state
				 memcpy(cB, handshake-&amp;gt;crypto)
				up_read()
				if (sB != 1)
				 goto fail
				slow_crypto(cB)
down_write()
 if (sA != handshake-&amp;gt;state)
  goto fail
 memcpy(handshake-&amp;gt;crypto, cA)
 handshake-&amp;gt;state = 2
up_write()
down_write()
 if (handshake-&amp;gt;state != 2)
  goto fail
 derive_session(handshake-&amp;gt;crypto)
up_write()
								down_write()
								 slow_crypto(handshake-&amp;gt;crypto)
								 hands…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-99059</guid>
    </item>
  </channel>
</rss>
