GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2024-26951 (GCVE-0-2024-26951)

Vulnerability from cvelistv5 – Published: 2024-05-01 05:18 – Updated: 2026-08-05 11:28
VLAI
Title
wireguard: netlink: check for dangling peer via is_dead instead of empty list
Summary
In the Linux kernel, the following vulnerability has been resolved: wireguard: netlink: check for dangling peer via is_dead instead of empty list If all peers are removed via wg_peer_remove_all(), rather than setting peer_list to empty, the peer is added to a temporary list with a head on the stack of wg_peer_remove_all(). If a netlink dump is resumed and the cursored peer is one that has been removed via wg_peer_remove_all(), it will iterate from that peer and then attempt to dump freed peers. Fix this by instead checking peer->is_dead, which was explictly created for this purpose. Also move up the device_update_lock lockdep assertion, since reading is_dead relies on that. It can be reproduced by a small script like: echo "Setting config..." ip link add dev wg0 type wireguard wg setconf wg0 /big-config ( while true; do echo "Showing config..." wg showconf wg0 > /dev/null done ) & sleep 4 wg setconf wg0 <(printf "[Peer]\nPublicKey=$(wg genkey)\n") Resulting in: BUG: KASAN: slab-use-after-free in __lock_acquire+0x182a/0x1b20 Read of size 8 at addr ffff88811956ec70 by task wg/59 CPU: 2 PID: 59 Comm: wg Not tainted 6.8.0-rc2-debug+ #5 Call Trace: <TASK> dump_stack_lvl+0x47/0x70 print_address_description.constprop.0+0x2c/0x380 print_report+0xab/0x250 kasan_report+0xba/0xf0 __lock_acquire+0x182a/0x1b20 lock_acquire+0x191/0x4b0 down_read+0x80/0x440 get_peer+0x140/0xcb0 wg_get_device_dump+0x471/0x1130
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2024-09-10 15:45 UTC
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: e7096c131e5161fa3b8e52a650d7719d2857adfd , < f52be46e3e6ecefc2539119784324f0cbc09620a (git)
Affected: e7096c131e5161fa3b8e52a650d7719d2857adfd , < 710a177f347282eea162aec8712beb1f42d5ad87 (git)
Affected: e7096c131e5161fa3b8e52a650d7719d2857adfd , < b7cea3a9af0853fdbb1b16633a458f991dde6aac (git)
Affected: e7096c131e5161fa3b8e52a650d7719d2857adfd , < 13d107794304306164481d31ce33f8fdb25a9c04 (git)
Affected: e7096c131e5161fa3b8e52a650d7719d2857adfd , < 7bedfe4cfa38771840a355970e4437cd52d4046b (git)
Affected: e7096c131e5161fa3b8e52a650d7719d2857adfd , < 302b2dfc013baca3dea7ceda383930d9297d231d (git)
Affected: e7096c131e5161fa3b8e52a650d7719d2857adfd , < 55b6c738673871c9b0edae05d0c97995c1ff08c4 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.6
Unaffected: 0 , < 5.6 (semver)
Unaffected: 5.10.215 , ≤ 5.10.* (semver)
Unaffected: 5.15.154 , ≤ 5.15.* (semver)
Unaffected: 6.1.84 , ≤ 6.1.* (semver)
Unaffected: 6.6.24 , ≤ 6.6.* (semver)
Unaffected: 6.7.12 , ≤ 6.7.* (semver)
Unaffected: 6.8.3 , ≤ 6.8.* (semver)
Unaffected: 6.9 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem Affected: 0 , < * (custom)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T00:21:05.788Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/f52be46e3e6ecefc2539119784324f0cbc09620a"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/710a177f347282eea162aec8712beb1f42d5ad87"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/b7cea3a9af0853fdbb1b16633a458f991dde6aac"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/13d107794304306164481d31ce33f8fdb25a9c04"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/7bedfe4cfa38771840a355970e4437cd52d4046b"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/302b2dfc013baca3dea7ceda383930d9297d231d"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/55b6c738673871c9b0edae05d0c97995c1ff08c4"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-26951",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:45:36.397018Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:32:58.386Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "affected": [
          {
            "defaultStatus": "unknown",
            "product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
            "vendor": "Siemens",
            "versions": [
              {
                "lessThan": "*",
                "status": "affected",
                "version": "0",
                "versionType": "custom"
              }
            ]
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-05-12T11:50:47.613Z",
          "orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
          "shortName": "siemens-SADP"
        },
        "references": [
          {
            "url": "https://cert-portal.siemens.com/productcert/html/ssa-265688.html"
          }
        ],
        "x_adpType": "supplier"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wireguard/netlink.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f52be46e3e6ecefc2539119784324f0cbc09620a",
              "status": "affected",
              "version": "e7096c131e5161fa3b8e52a650d7719d2857adfd",
              "versionType": "git"
            },
            {
              "lessThan": "710a177f347282eea162aec8712beb1f42d5ad87",
              "status": "affected",
              "version": "e7096c131e5161fa3b8e52a650d7719d2857adfd",
              "versionType": "git"
            },
            {
              "lessThan": "b7cea3a9af0853fdbb1b16633a458f991dde6aac",
              "status": "affected",
              "version": "e7096c131e5161fa3b8e52a650d7719d2857adfd",
              "versionType": "git"
            },
            {
              "lessThan": "13d107794304306164481d31ce33f8fdb25a9c04",
              "status": "affected",
              "version": "e7096c131e5161fa3b8e52a650d7719d2857adfd",
              "versionType": "git"
            },
            {
              "lessThan": "7bedfe4cfa38771840a355970e4437cd52d4046b",
              "status": "affected",
              "version": "e7096c131e5161fa3b8e52a650d7719d2857adfd",
              "versionType": "git"
            },
            {
              "lessThan": "302b2dfc013baca3dea7ceda383930d9297d231d",
              "status": "affected",
              "version": "e7096c131e5161fa3b8e52a650d7719d2857adfd",
              "versionType": "git"
            },
            {
              "lessThan": "55b6c738673871c9b0edae05d0c97995c1ff08c4",
              "status": "affected",
              "version": "e7096c131e5161fa3b8e52a650d7719d2857adfd",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wireguard/netlink.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.6"
            },
            {
              "lessThan": "5.6",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.215",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.154",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.84",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.24",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.7.*",
              "status": "unaffected",
              "version": "6.7.12",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.9",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.215",
                  "versionStartIncluding": "5.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.154",
                  "versionStartIncluding": "5.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.84",
                  "versionStartIncluding": "5.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.24",
                  "versionStartIncluding": "5.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.7.12",
                  "versionStartIncluding": "5.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.8.3",
                  "versionStartIncluding": "5.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.9",
                  "versionStartIncluding": "5.6",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwireguard: netlink: check for dangling peer via is_dead instead of empty list\n\nIf all peers are removed via wg_peer_remove_all(), rather than setting\npeer_list to empty, the peer is added to a temporary list with a head on\nthe stack of wg_peer_remove_all(). If a netlink dump is resumed and the\ncursored peer is one that has been removed via wg_peer_remove_all(), it\nwill iterate from that peer and then attempt to dump freed peers.\n\nFix this by instead checking peer-\u003eis_dead, which was explictly created\nfor this purpose. Also move up the device_update_lock lockdep assertion,\nsince reading is_dead relies on that.\n\nIt can be reproduced by a small script like:\n\n    echo \"Setting config...\"\n    ip link add dev wg0 type wireguard\n    wg setconf wg0 /big-config\n    (\n            while true; do\n                    echo \"Showing config...\"\n                    wg showconf wg0 \u003e /dev/null\n            done\n    ) \u0026\n    sleep 4\n    wg setconf wg0 \u003c(printf \"[Peer]\\nPublicKey=$(wg genkey)\\n\")\n\nResulting in:\n\n    BUG: KASAN: slab-use-after-free in __lock_acquire+0x182a/0x1b20\n    Read of size 8 at addr ffff88811956ec70 by task wg/59\n    CPU: 2 PID: 59 Comm: wg Not tainted 6.8.0-rc2-debug+ #5\n    Call Trace:\n     \u003cTASK\u003e\n     dump_stack_lvl+0x47/0x70\n     print_address_description.constprop.0+0x2c/0x380\n     print_report+0xab/0x250\n     kasan_report+0xba/0xf0\n     __lock_acquire+0x182a/0x1b20\n     lock_acquire+0x191/0x4b0\n     down_read+0x80/0x440\n     get_peer+0x140/0xcb0\n     wg_get_device_dump+0x471/0x1130"
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerable code is reached only through the WireGuard generic-netlink family (`WG_CMD_GET_DEVICE` dump raced against `WG_CMD_SET_DEVICE`), which requires a local netlink socket. Per kernel scoring guidance, netlink-reachable bugs are Local.\nAC:L - The attacker controls both sides of the race \u2014 one thread runs the resumable dump while another issues a peer-replace \u2014 and controls the peer count that forces multi-skb dump resumption, exactly as in the maintainer\u0027s shell-script reproducer. Nothing depends on conditions outside the attacker\u0027s influence.\nPR:L - The ops use `GENL_UNS_ADMIN_PERM`, i.e. `netlink_ns_capable(skb, net-\u003euser_ns, CAP_NET_ADMIN)`, and the family is `netnsok`, so an unprivileged user can obtain the needed capability via `unshare -Urn` \u2014 verified by successfully creating a WireGuard device in a user namespace as a normal user.\nUI:N - Exploitation is entirely driven by the attacker\u0027s own two threads issuing netlink requests on a device they created; no victim action or cooperation is involved.\nS:U - The use-after-free corrupts kernel heap state and leaks kernel memory within the same kernel security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - `get_peer()` reads freed `wg_peer` objects and `nla_put()`s their contents \u2014 public key, preshared key, endpoint, counters \u2014 directly into the netlink reply returned to userspace, and the traversal off a stale stack-resident list head can dereference wild pointers, giving a broad kernel-memory read primitive.\nI:H - `down_read()`/`read_lock_bh()` on the freed and wild-pointer objects perform atomic read-modify-write operations on attacker-groomable memory, which combined with heap spraying of the reclaimed `wg_peer` slab yields an exploitable write primitive for control-flow hijacking.\nA:H - The maintainer\u0027s reproducer produces a KASAN slab-use-after-free with a corrupted rwsem acquisition; unmitigated this reliably oopses or panics the kernel, and a garbage lock value can also hang the dumping task indefinitely."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:28:32.058Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f52be46e3e6ecefc2539119784324f0cbc09620a"
        },
        {
          "url": "https://git.kernel.org/stable/c/710a177f347282eea162aec8712beb1f42d5ad87"
        },
        {
          "url": "https://git.kernel.org/stable/c/b7cea3a9af0853fdbb1b16633a458f991dde6aac"
        },
        {
          "url": "https://git.kernel.org/stable/c/13d107794304306164481d31ce33f8fdb25a9c04"
        },
        {
          "url": "https://git.kernel.org/stable/c/7bedfe4cfa38771840a355970e4437cd52d4046b"
        },
        {
          "url": "https://git.kernel.org/stable/c/302b2dfc013baca3dea7ceda383930d9297d231d"
        },
        {
          "url": "https://git.kernel.org/stable/c/55b6c738673871c9b0edae05d0c97995c1ff08c4"
        }
      ],
      "title": "wireguard: netlink: check for dangling peer via is_dead instead of empty list",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-26951",
    "datePublished": "2024-05-01T05:18:34.520Z",
    "dateReserved": "2024-02-19T14:20:24.198Z",
    "dateUpdated": "2026-08-05T11:28:32.058Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2024-26951",
      "date": "2026-09-16",
      "epss": "0.00233",
      "percentile": "0.14287"
    },
    "fkie_nvd": {
      "descriptions": "[{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nwireguard: netlink: check for dangling peer via is_dead instead of empty list\\n\\nIf all peers are removed via wg_peer_remove_all(), rather than setting\\npeer_list to empty, the peer is added to a temporary list with a head on\\nthe stack of wg_peer_remove_all(). If a netlink dump is resumed and the\\ncursored peer is one that has been removed via wg_peer_remove_all(), it\\nwill iterate from that peer and then attempt to dump freed peers.\\n\\nFix this by instead checking peer-\u003eis_dead, which was explictly created\\nfor this purpose. Also move up the device_update_lock lockdep assertion,\\nsince reading is_dead relies on that.\\n\\nIt can be reproduced by a small script like:\\n\\n    echo \\\"Setting config...\\\"\\n    ip link add dev wg0 type wireguard\\n    wg setconf wg0 /big-config\\n    (\\n            while true; do\\n                    echo \\\"Showing config...\\\"\\n                    wg showconf wg0 \u003e /dev/null\\n            done\\n    ) \u0026\\n    sleep 4\\n    wg setconf wg0 \u003c(printf \\\"[Peer]\\\\nPublicKey=$(wg genkey)\\\\n\\\")\\n\\nResulting in:\\n\\n    BUG: KASAN: slab-use-after-free in __lock_acquire+0x182a/0x1b20\\n    Read of size 8 at addr ffff88811956ec70 by task wg/59\\n    CPU: 2 PID: 59 Comm: wg Not tainted 6.8.0-rc2-debug+ #5\\n    Call Trace:\\n     \u003cTASK\u003e\\n     dump_stack_lvl+0x47/0x70\\n     print_address_description.constprop.0+0x2c/0x380\\n     print_report+0xab/0x250\\n     kasan_report+0xba/0xf0\\n     __lock_acquire+0x182a/0x1b20\\n     lock_acquire+0x191/0x4b0\\n     down_read+0x80/0x440\\n     get_peer+0x140/0xcb0\\n     wg_get_device_dump+0x471/0x1130\"}, {\"lang\": \"es\", \"value\": \"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: wireguard: netlink: verifique si hay pares pendientes a trav\\u00e9s de is_dead en lugar de una lista vac\\u00eda. Si todos los pares se eliminan a trav\\u00e9s de wg_peer_remove_all(), en lugar de configurar peer_list como vac\\u00edo, el par se agrega a una lista temporal. lista con un encabezado en la pila de wg_peer_remove_all(). Si se reanuda un volcado de netlink y el par seleccionado es uno que se elimin\\u00f3 mediante wg_peer_remove_all(), iterar\\u00e1 desde ese par y luego intentar\\u00e1 volcar los pares liberados. Para solucionar este problema, marque peer-\u0026gt;is_dead, que se cre\\u00f3 expl\\u00edcitamente para este prop\\u00f3sito. Tambi\\u00e9n suba la aserci\\u00f3n de bloqueo de dispositivo_update_lock, ya que la lectura is_dead depende de eso. Se puede reproducir mediante un peque\\u00f1o script como: echo \\\"Configuraci\\u00f3n de configuraci\\u00f3n...\\\" ip link add dev wg0 tipo wireguard wg setconf wg0 /big-config (mientras sea verdadero; haga echo \\\"Mostrando configuraci\\u00f3n...\\\" wg showconf wg0 \u0026gt; / dev/null done) \u0026amp; sleep 4 wg setconf wg0 \u0026lt;(printf \\\"[Peer]\\\\nPublicKey=$(wg genkey)\\\\n\\\") Resultando en: ERROR: KASAN: slab-use-after-free en __lock_acquire+0x182a/0x1b20 Lectura de tama\\u00f1o 8 en la direcci\\u00f3n ffff88811956ec70 mediante la tarea wg/59 CPU: 2 PID: 59 Comm: wg Not tainted 6.8.0-rc2-debug+ #5 Seguimiento de llamadas:  dump_stack_lvl+0x47/0x70 print_address_description.constprop.0+0x2c /0x380 print_report+0xab/0x250 kasan_report+0xba/0xf0 __lock_acquire+0x182a/0x1b20 lock_acquire+0x191/0x4b0 down_read+0x80/0x440 get_peer+0x140/0xcb0 wg_get_device_dump+0x471/0x1130\"}]",
      "id": "CVE-2024-26951",
      "lastModified": "2024-11-21T09:03:28.350",
      "published": "2024-05-01T06:15:11.223",
      "references": "[{\"url\": \"https://git.kernel.org/stable/c/13d107794304306164481d31ce33f8fdb25a9c04\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/302b2dfc013baca3dea7ceda383930d9297d231d\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/55b6c738673871c9b0edae05d0c97995c1ff08c4\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/710a177f347282eea162aec8712beb1f42d5ad87\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/7bedfe4cfa38771840a355970e4437cd52d4046b\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/b7cea3a9af0853fdbb1b16633a458f991dde6aac\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/f52be46e3e6ecefc2539119784324f0cbc09620a\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/13d107794304306164481d31ce33f8fdb25a9c04\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/302b2dfc013baca3dea7ceda383930d9297d231d\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/55b6c738673871c9b0edae05d0c97995c1ff08c4\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/710a177f347282eea162aec8712beb1f42d5ad87\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/7bedfe4cfa38771840a355970e4437cd52d4046b\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/b7cea3a9af0853fdbb1b16633a458f991dde6aac\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/f52be46e3e6ecefc2539119784324f0cbc09620a\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}]",
      "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "vulnStatus": "Awaiting Analysis"
    },
    "microsoft_vex": {
      "current_release_date": "2026-02-21T00:14:58.000Z",
      "cve": "CVE-2024-26951",
      "id": "msrc_CVE-2024-26951",
      "initial_release_date": "2024-05-02T07:00:00.000Z",
      "product_status:fixed": "5",
      "product_status:known_affected": "5",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "wireguard: netlink: check for dangling peer via is_dead instead of empty list",
      "url": "https://msrc.microsoft.com/csaf/vex/2024/msrc_cve-2024-26951.json",
      "version": "13"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-26951\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-01T06:15:11.223\",\"lastModified\":\"2026-08-04T11:17:25.113\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nwireguard: netlink: check for dangling peer via is_dead instead of empty list\\n\\nIf all peers are removed via wg_peer_remove_all(), rather than setting\\npeer_list to empty, the peer is added to a temporary list with a head on\\nthe stack of wg_peer_remove_all(). If a netlink dump is resumed and the\\ncursored peer is one that has been removed via wg_peer_remove_all(), it\\nwill iterate from that peer and then attempt to dump freed peers.\\n\\nFix this by instead checking peer-\u003eis_dead, which was explictly created\\nfor this purpose. Also move up the device_update_lock lockdep assertion,\\nsince reading is_dead relies on that.\\n\\nIt can be reproduced by a small script like:\\n\\n    echo \\\"Setting config...\\\"\\n    ip link add dev wg0 type wireguard\\n    wg setconf wg0 /big-config\\n    (\\n            while true; do\\n                    echo \\\"Showing config...\\\"\\n                    wg showconf wg0 \u003e /dev/null\\n            done\\n    ) \u0026\\n    sleep 4\\n    wg setconf wg0 \u003c(printf \\\"[Peer]\\\\nPublicKey=$(wg genkey)\\\\n\\\")\\n\\nResulting in:\\n\\n    BUG: KASAN: slab-use-after-free in __lock_acquire+0x182a/0x1b20\\n    Read of size 8 at addr ffff88811956ec70 by task wg/59\\n    CPU: 2 PID: 59 Comm: wg Not tainted 6.8.0-rc2-debug+ #5\\n    Call Trace:\\n     \u003cTASK\u003e\\n     dump_stack_lvl+0x47/0x70\\n     print_address_description.constprop.0+0x2c/0x380\\n     print_report+0xab/0x250\\n     kasan_report+0xba/0xf0\\n     __lock_acquire+0x182a/0x1b20\\n     lock_acquire+0x191/0x4b0\\n     down_read+0x80/0x440\\n     get_peer+0x140/0xcb0\\n     wg_get_device_dump+0x471/0x1130\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: wireguard: netlink: verifique si hay pares pendientes a trav\u00e9s de is_dead en lugar de una lista vac\u00eda. Si todos los pares se eliminan a trav\u00e9s de wg_peer_remove_all(), en lugar de configurar peer_list como vac\u00edo, el par se agrega a una lista temporal. lista con un encabezado en la pila de wg_peer_remove_all(). Si se reanuda un volcado de netlink y el par seleccionado es uno que se elimin\u00f3 mediante wg_peer_remove_all(), iterar\u00e1 desde ese par y luego intentar\u00e1 volcar los pares liberados. Para solucionar este problema, marque peer-\u0026gt;is_dead, que se cre\u00f3 expl\u00edcitamente para este prop\u00f3sito. Tambi\u00e9n suba la aserci\u00f3n de bloqueo de dispositivo_update_lock, ya que la lectura is_dead depende de eso. Se puede reproducir mediante un peque\u00f1o script como: echo \\\"Configuraci\u00f3n de configuraci\u00f3n...\\\" ip link add dev wg0 tipo wireguard wg setconf wg0 /big-config (mientras sea verdadero; haga echo \\\"Mostrando configuraci\u00f3n...\\\" wg showconf wg0 \u0026gt; / dev/null done) \u0026amp; sleep 4 wg setconf wg0 \u0026lt;(printf \\\"[Peer]\\\\nPublicKey=$(wg genkey)\\\\n\\\") Resultando en: ERROR: KASAN: slab-use-after-free en __lock_acquire+0x182a/0x1b20 Lectura de tama\u00f1o 8 en la direcci\u00f3n ffff88811956ec70 mediante la tarea wg/59 CPU: 2 PID: 59 Comm: wg Not tainted 6.8.0-rc2-debug+ #5 Seguimiento de llamadas:  dump_stack_lvl+0x47/0x70 print_address_description.constprop.0+0x2c /0x380 print_report+0xab/0x250 kasan_report+0xba/0xf0 __lock_acquire+0x182a/0x1b20 lock_acquire+0x191/0x4b0 down_read+0x80/0x440 get_peer+0x140/0xcb0 wg_get_device_dump+0x471/0x1130\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/net/wireguard/netlink.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"e7096c131e5161fa3b8e52a650d7719d2857adfd\",\"lessThan\":\"f52be46e3e6ecefc2539119784324f0cbc09620a\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e7096c131e5161fa3b8e52a650d7719d2857adfd\",\"lessThan\":\"710a177f347282eea162aec8712beb1f42d5ad87\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e7096c131e5161fa3b8e52a650d7719d2857adfd\",\"lessThan\":\"b7cea3a9af0853fdbb1b16633a458f991dde6aac\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e7096c131e5161fa3b8e52a650d7719d2857adfd\",\"lessThan\":\"13d107794304306164481d31ce33f8fdb25a9c04\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e7096c131e5161fa3b8e52a650d7719d2857adfd\",\"lessThan\":\"7bedfe4cfa38771840a355970e4437cd52d4046b\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e7096c131e5161fa3b8e52a650d7719d2857adfd\",\"lessThan\":\"302b2dfc013baca3dea7ceda383930d9297d231d\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e7096c131e5161fa3b8e52a650d7719d2857adfd\",\"lessThan\":\"55b6c738673871c9b0edae05d0c97995c1ff08c4\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/net/wireguard/netlink.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.6\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.6\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.215\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.154\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.84\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.24\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.7.12\",\"lessThanOrEqual\":\"6.7.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.8.3\",\"lessThanOrEqual\":\"6.8.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.9\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]},{\"source\":\"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e\",\"affectedData\":[{\"vendor\":\"Siemens\",\"product\":\"SIMATIC S7-1500 TM MFP - GNU/Linux subsystem\",\"defaultStatus\":\"unknown\",\"versions\":[{\"version\":\"0\",\"lessThan\":\"*\",\"versionType\":\"custom\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2024-09-10T15:45:36.397018Z\",\"id\":\"CVE-2024-26951\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-416\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.6\",\"versionEndExcluding\":\"5.10.215\",\"matchCriteriaId\":\"AA5E7B02-005F-4B5E-AFCA-13D2AE4EF328\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.11\",\"versionEndExcluding\":\"5.15.154\",\"matchCriteriaId\":\"577E212E-7E95-4A71-9B5C-F1D1A3AFFF46\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16\",\"versionEndExcluding\":\"6.1.84\",\"matchCriteriaId\":\"834D9BD5-42A6-4D74-979E-4D6D93F630FD\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.6.24\",\"matchCriteriaId\":\"8018C1D0-0A5F-48D0-BC72-A2B33FDDA693\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.7.12\",\"matchCriteriaId\":\"6BE9771A-BAFD-4624-95F9-58D536540C53\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.8\",\"versionEndExcluding\":\"6.8.3\",\"matchCriteriaId\":\"4C59BBC3-6495-4A77-9C82-55EC7CDF5E02\"}]}]},{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*\",\"matchCriteriaId\":\"07B237A9-69A3-4A9C-9DA0-4E06BD37AE73\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/13d107794304306164481d31ce33f8fdb25a9c04\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/302b2dfc013baca3dea7ceda383930d9297d231d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/55b6c738673871c9b0edae05d0c97995c1ff08c4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/710a177f347282eea162aec8712beb1f42d5ad87\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7bedfe4cfa38771840a355970e4437cd52d4046b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/b7cea3a9af0853fdbb1b16633a458f991dde6aac\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f52be46e3e6ecefc2539119784324f0cbc09620a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/13d107794304306164481d31ce33f8fdb25a9c04\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/302b2dfc013baca3dea7ceda383930d9297d231d\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/55b6c738673871c9b0edae05d0c97995c1ff08c4\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/710a177f347282eea162aec8712beb1f42d5ad87\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7bedfe4cfa38771840a355970e4437cd52d4046b\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/b7cea3a9af0853fdbb1b16633a458f991dde6aac\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f52be46e3e6ecefc2539119784324f0cbc09620a\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Third Party Advisory\"]},{\"url\":\"https://cert-portal.siemens.com/productcert/html/ssa-265688.html\",\"source\":\"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-08-04T22:48:41+00:00",
      "cve": "CVE-2024-26951",
      "id": "CVE-2024-26951",
      "initial_release_date": "2024-05-01T00:00:00+00:00",
      "product_status:fixed": "280",
      "product_status:known_affected": "22",
      "product_status:known_not_affected": "98",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: wireguard: netlink: check for dangling peer via is_dead instead of empty list",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-26951.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-29T01:57:36Z",
      "cve": "CVE-2024-26951",
      "id": "CVE-2024-26951",
      "initial_release_date": "2024-05-03T02:09:49Z",
      "product_status:known_affected": "316",
      "product_status:known_not_affected": "312",
      "product_status:recommended": "675",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2024-26951",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2024-26951.json",
      "version": "98"
    },
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/f52be46e3e6ecefc2539119784324f0cbc09620a\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/710a177f347282eea162aec8712beb1f42d5ad87\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/b7cea3a9af0853fdbb1b16633a458f991dde6aac\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/13d107794304306164481d31ce33f8fdb25a9c04\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/7bedfe4cfa38771840a355970e4437cd52d4046b\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/302b2dfc013baca3dea7ceda383930d9297d231d\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/55b6c738673871c9b0edae05d0c97995c1ff08c4\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T00:21:05.788Z\"}}, {\"affected\": [{\"vendor\": \"Siemens\", \"product\": \"SIMATIC S7-1500 TM MFP - GNU/Linux subsystem\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"*\", \"versionType\": \"custom\"}], \"defaultStatus\": \"unknown\"}], \"x_adpType\": \"supplier\", \"references\": [{\"url\": \"https://cert-portal.siemens.com/productcert/html/ssa-265688.html\"}], \"providerMetadata\": {\"orgId\": \"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e\", \"shortName\": \"siemens-SADP\", \"dateUpdated\": \"2026-05-12T11:50:47.613Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-26951\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:45:36.397018Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:13.827Z\"}}], \"cna\": {\"title\": \"wireguard: netlink: check for dangling peer via is_dead instead of empty list\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 7.8, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - The vulnerable code is reached only through the WireGuard generic-netlink family (`WG_CMD_GET_DEVICE` dump raced against `WG_CMD_SET_DEVICE`), which requires a local netlink socket. Per kernel scoring guidance, netlink-reachable bugs are Local.\\nAC:L - The attacker controls both sides of the race \\u2014 one thread runs the resumable dump while another issues a peer-replace \\u2014 and controls the peer count that forces multi-skb dump resumption, exactly as in the maintainer\u0027s shell-script reproducer. Nothing depends on conditions outside the attacker\u0027s influence.\\nPR:L - The ops use `GENL_UNS_ADMIN_PERM`, i.e. `netlink_ns_capable(skb, net-\u003euser_ns, CAP_NET_ADMIN)`, and the family is `netnsok`, so an unprivileged user can obtain the needed capability via `unshare -Urn` \\u2014 verified by successfully creating a WireGuard device in a user namespace as a normal user.\\nUI:N - Exploitation is entirely driven by the attacker\u0027s own two threads issuing netlink requests on a device they created; no victim action or cooperation is involved.\\nS:U - The use-after-free corrupts kernel heap state and leaks kernel memory within the same kernel security authority; no VM, IOMMU, or sandbox boundary is crossed.\\nC:H - `get_peer()` reads freed `wg_peer` objects and `nla_put()`s their contents \\u2014 public key, preshared key, endpoint, counters \\u2014 directly into the netlink reply returned to userspace, and the traversal off a stale stack-resident list head can dereference wild pointers, giving a broad kernel-memory read primitive.\\nI:H - `down_read()`/`read_lock_bh()` on the freed and wild-pointer objects perform atomic read-modify-write operations on attacker-groomable memory, which combined with heap spraying of the reclaimed `wg_peer` slab yields an exploitable write primitive for control-flow hijacking.\\nA:H - The maintainer\u0027s reproducer produces a KASAN slab-use-after-free with a corrupted rwsem acquisition; unmitigated this reliably oopses or panics the kernel, and a garbage lock value can also hang the dumping task indefinitely.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"e7096c131e5161fa3b8e52a650d7719d2857adfd\", \"lessThan\": \"f52be46e3e6ecefc2539119784324f0cbc09620a\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"e7096c131e5161fa3b8e52a650d7719d2857adfd\", \"lessThan\": \"710a177f347282eea162aec8712beb1f42d5ad87\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"e7096c131e5161fa3b8e52a650d7719d2857adfd\", \"lessThan\": \"b7cea3a9af0853fdbb1b16633a458f991dde6aac\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"e7096c131e5161fa3b8e52a650d7719d2857adfd\", \"lessThan\": \"13d107794304306164481d31ce33f8fdb25a9c04\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"e7096c131e5161fa3b8e52a650d7719d2857adfd\", \"lessThan\": \"7bedfe4cfa38771840a355970e4437cd52d4046b\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"e7096c131e5161fa3b8e52a650d7719d2857adfd\", \"lessThan\": \"302b2dfc013baca3dea7ceda383930d9297d231d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"e7096c131e5161fa3b8e52a650d7719d2857adfd\", \"lessThan\": \"55b6c738673871c9b0edae05d0c97995c1ff08c4\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/net/wireguard/netlink.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.6\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.6\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.10.215\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15.154\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.84\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.24\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.7.12\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.7.*\"}, {\"status\": \"unaffected\", \"version\": \"6.8.3\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.8.*\"}, {\"status\": \"unaffected\", \"version\": \"6.9\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/net/wireguard/netlink.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/f52be46e3e6ecefc2539119784324f0cbc09620a\"}, {\"url\": \"https://git.kernel.org/stable/c/710a177f347282eea162aec8712beb1f42d5ad87\"}, {\"url\": \"https://git.kernel.org/stable/c/b7cea3a9af0853fdbb1b16633a458f991dde6aac\"}, {\"url\": \"https://git.kernel.org/stable/c/13d107794304306164481d31ce33f8fdb25a9c04\"}, {\"url\": \"https://git.kernel.org/stable/c/7bedfe4cfa38771840a355970e4437cd52d4046b\"}, {\"url\": \"https://git.kernel.org/stable/c/302b2dfc013baca3dea7ceda383930d9297d231d\"}, {\"url\": \"https://git.kernel.org/stable/c/55b6c738673871c9b0edae05d0c97995c1ff08c4\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nwireguard: netlink: check for dangling peer via is_dead instead of empty list\\n\\nIf all peers are removed via wg_peer_remove_all(), rather than setting\\npeer_list to empty, the peer is added to a temporary list with a head on\\nthe stack of wg_peer_remove_all(). If a netlink dump is resumed and the\\ncursored peer is one that has been removed via wg_peer_remove_all(), it\\nwill iterate from that peer and then attempt to dump freed peers.\\n\\nFix this by instead checking peer-\u003eis_dead, which was explictly created\\nfor this purpose. Also move up the device_update_lock lockdep assertion,\\nsince reading is_dead relies on that.\\n\\nIt can be reproduced by a small script like:\\n\\n    echo \\\"Setting config...\\\"\\n    ip link add dev wg0 type wireguard\\n    wg setconf wg0 /big-config\\n    (\\n            while true; do\\n                    echo \\\"Showing config...\\\"\\n                    wg showconf wg0 \u003e /dev/null\\n            done\\n    ) \u0026\\n    sleep 4\\n    wg setconf wg0 \u003c(printf \\\"[Peer]\\\\nPublicKey=$(wg genkey)\\\\n\\\")\\n\\nResulting in:\\n\\n    BUG: KASAN: slab-use-after-free in __lock_acquire+0x182a/0x1b20\\n    Read of size 8 at addr ffff88811956ec70 by task wg/59\\n    CPU: 2 PID: 59 Comm: wg Not tainted 6.8.0-rc2-debug+ #5\\n    Call Trace:\\n     \u003cTASK\u003e\\n     dump_stack_lvl+0x47/0x70\\n     print_address_description.constprop.0+0x2c/0x380\\n     print_report+0xab/0x250\\n     kasan_report+0xba/0xf0\\n     __lock_acquire+0x182a/0x1b20\\n     lock_acquire+0x191/0x4b0\\n     down_read+0x80/0x440\\n     get_peer+0x140/0xcb0\\n     wg_get_device_dump+0x471/0x1130\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.215\", \"versionStartIncluding\": \"5.6\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.154\", \"versionStartIncluding\": \"5.6\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.84\", \"versionStartIncluding\": \"5.6\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.24\", \"versionStartIncluding\": \"5.6\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.7.12\", \"versionStartIncluding\": \"5.6\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.8.3\", \"versionStartIncluding\": \"5.6\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.9\", \"versionStartIncluding\": \"5.6\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:28:32.058Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-26951\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:28:32.058Z\", \"dateReserved\": \"2024-02-19T14:20:24.198Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-01T05:18:34.520Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…