CVE-2026-72408 (GCVE-0-2026-72408)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:56 – Updated: 2026-08-17 05:43
VLAI
Title
geneve: gate GRO hint in geneve_gro_complete() on gs->gro_hint
Summary
In the Linux kernel, the following vulnerability has been resolved: geneve: gate GRO hint in geneve_gro_complete() on gs->gro_hint geneve_gro_receive() reads the GRO hint through geneve_sk_gro_hint_off(), which honours it only when the socket enabled IFLA_GENEVE_GRO_HINT (gs->gro_hint). geneve_gro_complete() instead calls the low-level geneve_opt_gro_hint_off() and acts on the hint unconditionally. On a tunnel without the hint, receive aggregates the frames as plain ETH_P_TEB while complete still honours an attacker-supplied hint option: it inflates gh_len by gro_hint->nested_hdr_len (u8) and redirects the dispatch type, so the inner gro_complete handler runs at nhoff + gh_len, an offset receive never pulled nor validated, reading out of bounds of the skb head: BUG: KASAN: slab-out-of-bounds in ipv6_gro_complete (net/ipv6/ip6_offload.c:196) Read of size 1 at addr ffff88800fe91980 by task exploit/153 ipv6_gro_complete (net/ipv6/ip6_offload.c:196) geneve_gro_complete (drivers/net/geneve.c:965) udp_gro_complete (net/ipv4/udp_offload.c:940) inet_gro_complete (net/ipv4/af_inet.c:1621) __gro_flush (net/core/gro.c:306) Gate the complete path on gs->gro_hint too via geneve_sk_gro_hint_off(), so both paths agree. Tunnels that enable the hint are unaffected.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: fd0dd796576e1a560e1441e665810129f0a82be0 , < 49c2e7c0a69999a75ef5eaebe1559a20d0b3c15a (git)
Affected: fd0dd796576e1a560e1441e665810129f0a82be0 , < 2651c174445884ac9e85622aeade9c1f7b98d8e5 (git)
guessed Create a notification for this product.
Linux Linux Affected: 7.0
Unaffected: 0 , < 7.0 (semver)
Unaffected: 7.1.5 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/geneve.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "49c2e7c0a69999a75ef5eaebe1559a20d0b3c15a",
              "status": "affected",
              "version": "fd0dd796576e1a560e1441e665810129f0a82be0",
              "versionType": "git"
            },
            {
              "lessThan": "2651c174445884ac9e85622aeade9c1f7b98d8e5",
              "status": "affected",
              "version": "fd0dd796576e1a560e1441e665810129f0a82be0",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/geneve.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "7.0"
            },
            {
              "lessThan": "7.0",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "7.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "7.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngeneve: gate GRO hint in geneve_gro_complete() on gs-\u003egro_hint\n\ngeneve_gro_receive() reads the GRO hint through geneve_sk_gro_hint_off(),\nwhich honours it only when the socket enabled IFLA_GENEVE_GRO_HINT\n(gs-\u003egro_hint). geneve_gro_complete() instead calls the low-level\ngeneve_opt_gro_hint_off() and acts on the hint unconditionally.\n\nOn a tunnel without the hint, receive aggregates the frames as plain\nETH_P_TEB while complete still honours an attacker-supplied hint option: it\ninflates gh_len by gro_hint-\u003enested_hdr_len (u8) and redirects the dispatch\ntype, so the inner gro_complete handler runs at nhoff + gh_len, an offset\nreceive never pulled nor validated, reading out of bounds of the skb head:\n\n  BUG: KASAN: slab-out-of-bounds in ipv6_gro_complete (net/ipv6/ip6_offload.c:196)\n  Read of size 1 at addr ffff88800fe91980 by task exploit/153\n   ipv6_gro_complete (net/ipv6/ip6_offload.c:196)\n   geneve_gro_complete (drivers/net/geneve.c:965)\n   udp_gro_complete (net/ipv4/udp_offload.c:940)\n   inet_gro_complete (net/ipv4/af_inet.c:1621)\n   __gro_flush (net/core/gro.c:306)\n\nGate the complete path on gs-\u003egro_hint too via geneve_sk_gro_hint_off(), so\nboth paths agree. Tunnels that enable the hint are unaffected."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 10,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The bug is triggered by remotely delivered UDP/GENEVE packets processed in the NAPI GRO completion path (udp_gro_complete \u2192 geneve_gro_complete \u2192 __gro_flush), not via local syscalls or physical interfaces.\nAC:L - The attacker controls all packet fields (GRO hint option, nested_hdr_len, inner_proto_id) and can send multiple matching datagrams to force GRO aggregation/flush; no uncontrollable race or memory layout is required.\nPR:N - No authentication or local privileges are needed; any remote host that can send UDP to a victim\u0027s GENEVE tunnel port triggers the flaw on default tunnels without IFLA_GENEVE_GRO_HINT enabled.\nUI:N - Exploitation requires only transmission of crafted network packets; no victim interaction such as opening files, mounting filesystems, or clicking links is needed.\nS:C - In cloud/Kubernetes overlay deployments using GENEVE, a malicious tenant VM or pod can attack the host/hypervisor kernel over the underlay network, crossing the tenant-to-host security boundary.\nC:H - geneve_gro_complete() honors attacker-supplied GRO hint options that gro_receive() ignored, inflating gh_len and dispatching inner gro_complete past validated skb data, causing slab out-of-bounds reads and enabling arbitrary kernel memory disclosure.\nI:H - Misdirected gro_complete handlers (e.g., ipv6_gro_complete) read and rewrite protocol header fields at attacker-chosen offsets beyond the skb head, providing out-of-bounds write primitives exploitable for control-flow hijacking.\nA:H - The vulnerability provokes KASAN slab-out-of-bounds faults and kernel oops during GRO flush; repeated remote triggering can panic or hang the host, denying availability to all workloads."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:43:48.541Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/49c2e7c0a69999a75ef5eaebe1559a20d0b3c15a"
        },
        {
          "url": "https://git.kernel.org/stable/c/2651c174445884ac9e85622aeade9c1f7b98d8e5"
        }
      ],
      "title": "geneve: gate GRO hint in geneve_gro_complete() on gs-\u003egro_hint",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-72408",
    "datePublished": "2026-08-15T05:56:31.477Z",
    "dateReserved": "2026-08-09T03:40:39.926Z",
    "dateUpdated": "2026-08-17T05:43:48.541Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-72408",
      "date": "2026-09-20",
      "epss": "0.0038",
      "percentile": "0.31847"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/geneve.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "49c2e7c0a69999a75ef5eaebe1559a20d0b3c15a",
                    "status": "affected",
                    "version": "fd0dd796576e1a560e1441e665810129f0a82be0",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "2651c174445884ac9e85622aeade9c1f7b98d8e5",
                    "status": "affected",
                    "version": "fd0dd796576e1a560e1441e665810129f0a82be0",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/geneve.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "7.0"
                  },
                  {
                    "lessThan": "7.0",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.5",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngeneve: gate GRO hint in geneve_gro_complete() on gs-\u003egro_hint\n\ngeneve_gro_receive() reads the GRO hint through geneve_sk_gro_hint_off(),\nwhich honours it only when the socket enabled IFLA_GENEVE_GRO_HINT\n(gs-\u003egro_hint). geneve_gro_complete() instead calls the low-level\ngeneve_opt_gro_hint_off() and acts on the hint unconditionally.\n\nOn a tunnel without the hint, receive aggregates the frames as plain\nETH_P_TEB while complete still honours an attacker-supplied hint option: it\ninflates gh_len by gro_hint-\u003enested_hdr_len (u8) and redirects the dispatch\ntype, so the inner gro_complete handler runs at nhoff + gh_len, an offset\nreceive never pulled nor validated, reading out of bounds of the skb head:\n\n  BUG: KASAN: slab-out-of-bounds in ipv6_gro_complete (net/ipv6/ip6_offload.c:196)\n  Read of size 1 at addr ffff88800fe91980 by task exploit/153\n   ipv6_gro_complete (net/ipv6/ip6_offload.c:196)\n   geneve_gro_complete (drivers/net/geneve.c:965)\n   udp_gro_complete (net/ipv4/udp_offload.c:940)\n   inet_gro_complete (net/ipv4/af_inet.c:1621)\n   __gro_flush (net/core/gro.c:306)\n\nGate the complete path on gs-\u003egro_hint too via geneve_sk_gro_hint_off(), so\nboth paths agree. Tunnels that enable the hint are unaffected."
          }
        ],
        "id": "CVE-2026-72408",
        "lastModified": "2026-08-17T06:19:07.570",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 10.0,
                "baseSeverity": "CRITICAL",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "CHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 3.9,
              "impactScore": 6.0,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-15T06:22:14.397",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/2651c174445884ac9e85622aeade9c1f7b98d8e5"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/49c2e7c0a69999a75ef5eaebe1559a20d0b3c15a"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-19T17:41:51+00:00",
      "cve": "CVE-2026-72408",
      "id": "CVE-2026-72408",
      "initial_release_date": "2026-08-15T00:00:00+00:00",
      "product_status:known_affected": "76",
      "product_status:known_not_affected": "198",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: geneve: gate GRO hint in geneve_gro_complete() on gs-\u003egro_hint",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-72408.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-09-15T01:26:04Z",
      "cve": "CVE-2026-72408",
      "id": "CVE-2026-72408",
      "initial_release_date": "2026-08-26T01:14:38Z",
      "product_status:known_affected": "123",
      "product_status:known_not_affected": "239",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-72408",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-72408.json",
      "version": "5"
    }
  }
}



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…