Skip to content
Heist/ feed
Back to feed
UnratedFix available

net: stmmac: fix TSO header length truncation

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: net: stmmac: fix TSO header length truncation stmmac_tso_xmit() stores the protocol header length returned by stmmac_tso_header_size() in a u8. stmmac_tso_valid_packet() admits headers up to 1023 bytes, so a header longer than 255 bytes wraps modulo 256 (486 becomes 230, 256 becomes 0). A TCP over IPv6 socket carrying a few hundred bytes of sticky destination/hop-by-hop options makes skb_tcp_all_headers() exceed 255 while staying below the 1023-byte limit, so such an skb reaches stmmac_tso_xmit(). Widen proto_hdr_len to unsigned int, which is sufficient since the value is bounded by the hardware limit, and adjust the debug print specifier accordingly.

Products
Kernel
Affected versions
Not specified
Fixed versions
7.2.8
CVEs
CVE-2026-98288
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 15:27 UTC · Revision 1

Source evidence

net: stmmac: fix TSO header length truncation

core-osv · Original source

Published 6 Oct 2026, 08:45 UTC

In the Linux kernel, the following vulnerability has been resolved: net: stmmac: fix TSO header length truncation stmmac_tso_xmit() stores the protocol header length returned by stmmac_tso_header_size() in a u8. stmmac_tso_valid_packet() admits headers up to 1023 bytes, so a header longer than 255 bytes wraps modulo 256 (486 becomes 230, 256 becomes 0). A TCP over IPv6 socket carrying a few hundred bytes of sticky destination/hop-by-hop options makes skb_tcp_all_headers() exceed 255 while staying below the 1023-byte limit, so such an skb reaches stmmac_tso_xmit(). Widen proto_hdr_len to unsigned int, which is sufficient since the value is bounded by the hardware limit, and adjust the debug print specifier accordingly.

osv:CVE-2026-98288

Kernel

Fixed versions: 7.2.8

Complete source record
{
  "id": "b1b5c871ecdbab2e95b39bc650bad8de205965422a2ff2b80e51ec19fca4d086",
  "url": "https://osv.dev/vulnerability/CVE-2026-98288",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "net: stmmac: fix TSO header length truncation",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: net: stmmac: fix TSO header length truncation stmmac_tso_xmit() stores the protocol header length returned by stmmac_tso_header_size() in a u8. stmmac_tso_valid_packet() admits headers up to 1023 bytes, so a header longer than 255 bytes wraps modulo 256 (486 becomes 230, 256 becomes 0). A TCP over IPv6 socket carrying a few hundred bytes of sticky destination/hop-by-hop options makes skb_tcp_all_headers() exceed 255 while staying below the 1023-byte limit, so such an skb reaches stmmac_tso_xmit(). Widen proto_hdr_len to unsigned int, which is sufficient since the value is bounded by the hardware limit, and adjust the debug print specifier accordingly.",
    "evidence": "osv:CVE-2026-98288",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "7.2.8",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-98288",
      "aliases": [
        "CVE-2026-98288"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "9edfa7dab8112a012b349b7937f5444fdc21e8f9"
                },
                {
                  "fixed": "bcf6013c2b4d732c6e4bf4d0f6ae4a18d63d414b"
                },
                {
                  "fixed": "15989abd74f16f44bf953d056b95f1d2fda9b0cd"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98288.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "4.13.0"
                },
                {
                  "fixed": "7.2.8"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98288.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:29.814015987Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/15989abd74f16f44bf953d056b95f1d2fda9b0cd",
        "https://git.kernel.org/stable/c/bcf6013c2b4d732c6e4bf4d0f6ae4a18d63d414b",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98288.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-98288",
        "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/98xxx/CVE-2026-98288.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-98288",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 496815,
  "published_at": "2026-10-06T08:45:48.856+00:00"
}