← Back to CVE Explorer

CVE-2026-98568

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: vxlan: use one headroom snapshot for neighbour replies vxlan_na_create() samples LL_RESERVED_SPACE() to size the reply skb and then samples it again to reserve headroom. A concurrent vxlan_changelink() can update needed_headroom between the two reads, creating a TOCTOU race. The second value can exceed the allocation and make the Ethernet header write out of bounds. The race is reproducible on the unpatched kernel. It occurred when vxlan_na_create() generated a neighbour reply while vxlan_changelink() changed the link headroom. KASAN caught a four-byte write two bytes beyond a 704-byte skbuff_small_head allocation. Snapshot the headroom once and use that value for both allocation and reservation.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-10-18 16:17:09
Last modified
2026-10-30 13:21:16.090000
View original CVE JSON
{
  "id": "CVE-2026-98568",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-10-18T16:17:09.000",
  "lastModified": "2026-10-30T13:21:16.090",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvxlan: use one headroom snapshot for neighbour replies\n\nvxlan_na_create() samples LL_RESERVED_SPACE() to size the reply skb and then\nsamples it again to reserve headroom. A concurrent vxlan_changelink() can\nupdate needed_headroom between the two reads, creating a TOCTOU race. The\nsecond value can exceed the allocation and make the Ethernet header write out\nof bounds.\n\nThe race is reproducible on the unpatched kernel. It occurred when\nvxlan_na_create() generated a neighbour reply while vxlan_changelink() changed\nthe link headroom. KASAN caught a four-byte write two bytes beyond a 704-byte\nskbuff_small_head allocation.\n\nSnapshot the headroom once and use that value for both allocation and\nreservation."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/net/vxlan/vxlan_core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "4b29dba9c085a4fb79058fb1c45a2f6257ca3dfa",
              "lessThan": "e3e24f4c434c56952412f875b834aa9daaa4fb15",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "4b29dba9c085a4fb79058fb1c45a2f6257ca3dfa",
              "lessThan": "9ed5a548b42d46e6968a46b67ca8a8e49b12a5a1",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "4b29dba9c085a4fb79058fb1c45a2f6257ca3dfa",
              "lessThan": "fcaf456092dc86fd5b0b523ac27ec0d114066931",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "4b29dba9c085a4fb79058fb1c45a2f6257ca3dfa",
              "lessThan": "45a67662bf8ce3aa5643accf98d328dfbb47eaf6",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "4b29dba9c085a4fb79058fb1c45a2f6257ca3dfa",
              "lessThan": "315d42ca39f69846662961c25dcf2bb07c350d14",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "4b29dba9c085a4fb79058fb1c45a2f6257ca3dfa",
              "lessThan": "a3c5eb6e382dd426a5e7eb08608897ed57167ff7",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "4b29dba9c085a4fb79058fb1c45a2f6257ca3dfa",
              "lessThan": "ff022fd9d0f0282c575e11778b96bd1b637503eb",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "4b29dba9c085a4fb79058fb1c45a2f6257ca3dfa",
              "lessThan": "481506a756dcd828ef42391cb08f38d8d96d38fc",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "d8be18c52dbc94989f6d74637b731af39cd3d902",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "3927dace523706cc00f808520eaf2125dd7c07b5",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "3.12.18",
              "lessThan": "3.13",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "3.13.10",
              "lessThan": "3.14",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/net/vxlan/vxlan_core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "3.14",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "3.14",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.273",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.224",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.191",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.158",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.112",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.55",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.9",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/315d42ca39f69846662961c25dcf2bb07c350d14",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/45a67662bf8ce3aa5643accf98d328dfbb47eaf6",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/481506a756dcd828ef42391cb08f38d8d96d38fc",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/9ed5a548b42d46e6968a46b67ca8a8e49b12a5a1",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/a3c5eb6e382dd426a5e7eb08608897ed57167ff7",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/e3e24f4c434c56952412f875b834aa9daaa4fb15",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/fcaf456092dc86fd5b0b523ac27ec0d114066931",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/ff022fd9d0f0282c575e11778b96bd1b637503eb",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}