Skip to content
Heist/ feed
Back to feed
HighFix available

wireguard: noise: reject response consumption after intermediate initiation

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: wireguard: noise: reject response consumption after intermediate initiation Two threads begin processing the identical response message, received twice. The first thread, A, runs. While it'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'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. 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

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.273, 5.15.224, 6.1.191, 6.12.113, 6.18.57, 6.6.160, 7.2.11
CVEs
CVE-2026-99059
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 16:54 UTC · Revision 1

Source evidence

wireguard: noise: reject response consumption after intermediate initiation

core-osv · Original source

Published 23 Oct 2026, 12:22 UTC

In the Linux kernel, the following vulnerability has been resolved: wireguard: noise: reject response consumption after intermediate initiation Two threads begin processing the identical response message, received twice. The first thread, A, runs. While it'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'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. 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

osv:CVE-2026-99059

Kernel

Fixed versions: 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.57, 7.2.11

Complete source record
{
  "id": "ef154a42b84f512e0c46199851c12372b812866ead9a528d70b4ccef6fba641c",
  "url": "https://osv.dev/vulnerability/CVE-2026-99059",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "wireguard: noise: reject response consumption after intermediate initiation",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: wireguard: noise: reject response consumption after intermediate initiation Two threads begin processing the identical response message, received twice. The first thread, A, runs. While it'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'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. 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 ",
    "evidence": "osv:CVE-2026-99059",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.10.273",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.224",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.191",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.160",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.113",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.57",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.11",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-99059",
      "aliases": [
        "CVE-2026-99059"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "e7096c131e5161fa3b8e52a650d7719d2857adfd"
                },
                {
                  "fixed": "dbd1e21f4301bd2157cd771255f1ca6ba1c8a1f9"
                },
                {
                  "fixed": "f4012ec25a4abb6a23dc40043f61e2d9a7deca6d"
                },
                {
                  "fixed": "6b5b14cb5421e84191e3f6b5a7566783a402ff7f"
                },
                {
                  "fixed": "fb5ce4c7790c3eeec820302d08d70ecf46af4295"
                },
                {
                  "fixed": "c76a80db593096edf2b3b3972f58b6342a8c6c04"
                },
                {
                  "fixed": "4d64a3d6e96aa78619c9c29ffde309794974588a"
                },
                {
                  "fixed": "3bec3d32c2a3afd164fc87f95457df2cf9049c20"
                },
                {
                  "fixed": "d0305f8d90029556260c6824b61c493c424eba9e"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-99059.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.6.0"
                },
                {
                  "fixed": "5.10.273"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.224"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.191"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.160"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.113"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.57"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.2.11"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-99059.json"
          }
        }
      ],
      "modified": "2026-11-01T02:30:50.143826839Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/3bec3d32c2a3afd164fc87f95457df2cf9049c20",
        "https://git.kernel.org/stable/c/4d64a3d6e96aa78619c9c29ffde309794974588a",
        "https://git.kernel.org/stable/c/6b5b14cb5421e84191e3f6b5a7566783a402ff7f",
        "https://git.kernel.org/stable/c/c76a80db593096edf2b3b3972f58b6342a8c6c04",
        "https://git.kernel.org/stable/c/d0305f8d90029556260c6824b61c493c424eba9e",
        "https://git.kernel.org/stable/c/dbd1e21f4301bd2157cd771255f1ca6ba1c8a1f9",
        "https://git.kernel.org/stable/c/f4012ec25a4abb6a23dc40043f61e2d9a7deca6d",
        "https://git.kernel.org/stable/c/fb5ce4c7790c3eeec820302d08d70ecf46af4295",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/99xxx/CVE-2026-99059.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-99059",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/99xxx/CVE-2026-99059.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-99059",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 504969,
  "published_at": "2026-10-23T12:22:47.559+00:00"
}