CVE-2026-98570 (GCVE-0-2026-98570)
Vulnerability from cvelistv5
Published
2026-10-18 15:18
Modified
2026-10-19 09:21
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: net: ipv6: keep room for the mac header in dst_dev_overhead() The seg6, ioam6 and rpl lwtunnels size their skb_cow_head() request as the length they are about to push plus dst_dev_overhead(), then push the new headers and rebuild the mac header below them with skb_mac_header_rebuild(). That rebuild needs skb->mac_len of headroom, but dst_dev_overhead() leaves LL_RESERVED_SPACE() of the egress device, 16 bytes for plain Ethernet. Where the mac header is longer than that, as it is on ingress through a VLAN device with reorder_hdr off, the rebuild runs out of room: skb_set_mac_header(skb, -skb->mac_len) computes a negative offset, stores it unchecked in the u16 skb->mac_header, and the memmove that follows writes skb->mac_len bytes about 64 KB past skb->head. Forwarding plain ping6 traffic through such a device reproduces it on all five seg6 encapsulation modes and on the rpl and ioam6 inline paths; skb->mac_header comes back as 65534 on a 704-byte head. Return the larger of the two. The helper already returns skb->mac_len when it has no dst, so this only makes the other branch agree, and it covers every caller rather than each call site in turn.
Impacted products
Vendor Product Version
Linux Linux Version: dce525185bc92864e5a318040285ee070563fe34
Version: dce525185bc92864e5a318040285ee070563fe34
Version: 8471e228448a818e4c27cab4b681b2e758e46cf5
Version: c432cd18a07b623651ed15ea167bd303467004cc
Version: 634710a372ba65bee667c2f6e58a97658c639eab
Version: c447c5a9c47bb4858ab12bf90879fe595d2b7f46
Version: ab9de9c48316d2622d3bf353916b99971570e2c9
Version: 2fcc9f3798ef82399564d247458e69abd10e683b
Version: 371d8dc298b4f59e99b4564ac5d906fce0932c69
Version: b26f015dfb07b6be12d005a0ed0c5c43b7bedbf3
Version: c0b11dc50590e10590b39dcda79835cd32f49d00
Version: 4c12c3c8abd8b888945d31e7bdbb0d8b73032fc5
Version: 25d8e065c7972dc98fd7a4cac322d5367eaede88
Version: 4a855c5aec41bf84922224ab7a74e088776e3ac4
Version: a9f0407414e16176fdbbbd298c9e18d6dfdf96bc
Version: 6.12.16   ≤
Version: 6.13.4   ≤
Version: 5.15.179   ≤
Version: 6.1.130   ≤
Version: 6.6.81   ≤
Version: 5.10.235   ≤
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "include/net/dst.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "36c07127924f11fc5741a780abcaaf808fe9ef13",
              "status": "affected",
              "version": "dce525185bc92864e5a318040285ee070563fe34",
              "versionType": "git"
            },
            {
              "lessThan": "87cd6b717e4069dca34e0866e57eaeb44d3b173e",
              "status": "affected",
              "version": "dce525185bc92864e5a318040285ee070563fe34",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "8471e228448a818e4c27cab4b681b2e758e46cf5",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "c432cd18a07b623651ed15ea167bd303467004cc",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "634710a372ba65bee667c2f6e58a97658c639eab",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "c447c5a9c47bb4858ab12bf90879fe595d2b7f46",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "ab9de9c48316d2622d3bf353916b99971570e2c9",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "2fcc9f3798ef82399564d247458e69abd10e683b",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "371d8dc298b4f59e99b4564ac5d906fce0932c69",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "b26f015dfb07b6be12d005a0ed0c5c43b7bedbf3",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "c0b11dc50590e10590b39dcda79835cd32f49d00",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "4c12c3c8abd8b888945d31e7bdbb0d8b73032fc5",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "25d8e065c7972dc98fd7a4cac322d5367eaede88",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "4a855c5aec41bf84922224ab7a74e088776e3ac4",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "a9f0407414e16176fdbbbd298c9e18d6dfdf96bc",
              "versionType": "git"
            },
            {
              "lessThan": "6.13",
              "status": "affected",
              "version": "6.12.16",
              "versionType": "semver"
            },
            {
              "lessThan": "6.14",
              "status": "affected",
              "version": "6.13.4",
              "versionType": "semver"
            },
            {
              "lessThan": "5.16",
              "status": "affected",
              "version": "5.15.179",
              "versionType": "semver"
            },
            {
              "lessThan": "6.2",
              "status": "affected",
              "version": "6.1.130",
              "versionType": "semver"
            },
            {
              "lessThan": "6.7",
              "status": "affected",
              "version": "6.6.81",
              "versionType": "semver"
            },
            {
              "lessThan": "5.11",
              "status": "affected",
              "version": "5.10.235",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "include/net/dst.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.14"
            },
            {
              "lessThan": "6.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.9",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.9",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.12.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.13.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.15.179",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.1.130",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.6.81",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.12.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.13.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.10.235",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.15.179",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.1.130",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.6.81",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.12.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.13.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ipv6: keep room for the mac header in dst_dev_overhead()\n\nThe seg6, ioam6 and rpl lwtunnels size their skb_cow_head() request as\nthe length they are about to push plus dst_dev_overhead(), then push the\nnew headers and rebuild the mac header below them with\nskb_mac_header_rebuild().  That rebuild needs skb-\u003emac_len of headroom,\nbut dst_dev_overhead() leaves LL_RESERVED_SPACE() of the egress device,\n16 bytes for plain Ethernet.\n\nWhere the mac header is longer than that, as it is on ingress through a\nVLAN device with reorder_hdr off, the rebuild runs out of room:\nskb_set_mac_header(skb, -skb-\u003emac_len) computes a negative offset,\nstores it unchecked in the u16 skb-\u003emac_header, and the memmove that\nfollows writes skb-\u003emac_len bytes about 64 KB past skb-\u003ehead.\nForwarding plain ping6 traffic through such a device reproduces it on\nall five seg6 encapsulation modes and on the rpl and ioam6 inline paths;\nskb-\u003emac_header comes back as 65534 on a 704-byte head.\n\nReturn the larger of the two.  The helper already returns skb-\u003emac_len\nwhen it has no dst, so this only makes the other branch agree, and it\ncovers every caller rather than each call site in turn."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T09:21:55.765Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/36c07127924f11fc5741a780abcaaf808fe9ef13"
        },
        {
          "url": "https://git.kernel.org/stable/c/87cd6b717e4069dca34e0866e57eaeb44d3b173e"
        }
      ],
      "title": "net: ipv6: keep room for the mac header in dst_dev_overhead()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-98570",
    "datePublished": "2026-10-18T15:18:36.308Z",
    "dateReserved": "2026-09-25T10:25:14.357Z",
    "dateUpdated": "2026-10-19T09:21:55.765Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…