Description
In the Linux kernel, the following vulnerability has been resolved:

geneve: validate inner network offset in geneve_gro_complete()

Even with both paths gated on gs->gro_hint, geneve_gro_complete()
re-derives the inner dispatch type and length from the packet and the
current gs->gro_hint, independently of geneve_gro_receive(). The two can
disagree if gs->gro_hint flips under a concurrent geneve_quiesce()/
geneve_unquiesce() (sk_user_data is NULL across a synchronize_net()), or if
the re-read option bytes differ from the ones receive parsed.

geneve_gro_receive() already records the inner network header position in
NAPI_GRO_CB()->inner_network_offset. Have geneve_gro_complete() compute the
offset it is about to dispatch at, adding ETH_HLEN in the ETH_P_TEB case
where eth_gro_complete() steps over the inner MAC header, and bail out if
it lands past inner_network_offset.

Use a lower bound rather than exact equality: between gh_len and the inner
L3 header, geneve_gro_receive() may also have pulled an inner VLAN tag
(vlan_gro_receive() advances the recorded offset past it), which only moves
inner_network_offset further out. A valid frame therefore always satisfies
inner_nh <= inner_network_offset, while a gh_len inflated by a hint
gro_receive() did not honour dispatches past the validated inner header,
i.e. the out-of-bounds completion. Only the latter is rejected.
Published: 2026-08-15
Score: 10 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel’s Geneve implementation contains an incorrect validation of the inner network header offset in the geneve_gro_complete() routine. When a packet arrives the code recomputes the dispatch offset independently of the original receive path. If the gro hint flips during a concurrent quiesce/unquiesce cycle or if the re‑read option bytes differ, the two offsets can diverge. The routine accepts an offset that lies past the real inner header, allowing an attacker to craft a packet that causes the kernel to access memory beyond the bounds of the Geneve payload. This out‑of‑bounds completion can corrupt kernel memory, which is a flaw classified as CWE‑823, indicating improper handling of memory that can lead to arbitrary code execution or denial of service.

Affected Systems

The bug resides in the generic Linux kernel stack, affecting any distribution that ships a kernel containing the legacy geneve_gro_complete() implementation. No specific release dates or version numbers were disclosed, so devices running non‑patched kernels that enable Geneve tunneling are potentially vulnerable. The advisory references the Linux kernel repository, indicating that the fix is available in the mainline code and should be present in recent stable releases.

Risk and Exploitability

The CVSS score of 10 indicates the highest severity, while the EPSS score of <1% implies a very low exploitation probability. The flaw is not listed in the CISA KEV catalog, implying that it may not yet have active exploits in the wild. An attacker might gain code execution by targeting the host’s Geneve traffic, so the attack vector is network‑based and requires the target to process Geneve packets.

Generated by OpenCVE AI on August 22, 2026 at 05:16 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a Linux kernel release that includes the patched geneve_gro_complete() offset validation.
  • If an updated kernel is not available, disable Geneve support by preventing the creation of Geneve virtual interfaces or unloading the associated kernel module.
  • Block Geneve traffic with host‑based firewalls such as iptables or nftables to stop potentially malicious packets from reaching the kernel.

Generated by OpenCVE AI on August 22, 2026 at 05:16 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 20 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-823
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 10, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H'}


Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: geneve: validate inner network offset in geneve_gro_complete() Even with both paths gated on gs->gro_hint, geneve_gro_complete() re-derives the inner dispatch type and length from the packet and the current gs->gro_hint, independently of geneve_gro_receive(). The two can disagree if gs->gro_hint flips under a concurrent geneve_quiesce()/ geneve_unquiesce() (sk_user_data is NULL across a synchronize_net()), or if the re-read option bytes differ from the ones receive parsed. geneve_gro_receive() already records the inner network header position in NAPI_GRO_CB()->inner_network_offset. Have geneve_gro_complete() compute the offset it is about to dispatch at, adding ETH_HLEN in the ETH_P_TEB case where eth_gro_complete() steps over the inner MAC header, and bail out if it lands past inner_network_offset. Use a lower bound rather than exact equality: between gh_len and the inner L3 header, geneve_gro_receive() may also have pulled an inner VLAN tag (vlan_gro_receive() advances the recorded offset past it), which only moves inner_network_offset further out. A valid frame therefore always satisfies inner_nh <= inner_network_offset, while a gh_len inflated by a hint gro_receive() did not honour dispatches past the validated inner header, i.e. the out-of-bounds completion. Only the latter is rejected.
Title geneve: validate inner network offset in geneve_gro_complete()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-17T05:43:47.398Z

Reserved: 2026-08-09T03:40:39.926Z

Link: CVE-2026-72407

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:22:14.300

Modified: 2026-08-17T06:19:07.453

Link: CVE-2026-72407

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72407 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T05:30:17Z

Weaknesses
  • CWE-823

    Use of Out-of-range Pointer Offset