{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-72408","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-08-09T03:40:39.926Z","datePublished":"2026-08-15T05:56:31.477Z","dateUpdated":"2026-08-17T05:43:48.541Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-17T05:43:48.541Z"},"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->gro_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->gro_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->nested_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->gro_hint too via geneve_sk_gro_hint_off(), so\nboth paths agree. Tunnels that enable the hint are unaffected."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","baseScore":10,"baseSeverity":"CRITICAL"},"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 → geneve_gro_complete → __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's 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."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/geneve.c"],"versions":[{"version":"fd0dd796576e1a560e1441e665810129f0a82be0","lessThan":"49c2e7c0a69999a75ef5eaebe1559a20d0b3c15a","status":"affected","versionType":"git"},{"version":"fd0dd796576e1a560e1441e665810129f0a82be0","lessThan":"2651c174445884ac9e85622aeade9c1f7b98d8e5","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/geneve.c"],"versions":[{"version":"7.0","status":"affected"},{"version":"0","lessThan":"7.0","status":"unaffected","versionType":"semver"},{"version":"7.1.5","lessThanOrEqual":"7.1.*","status":"unaffected","versionType":"semver"},{"version":"7.2","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.0","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.0","versionEndExcluding":"7.2"}]}]}],"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->gro_hint","x_generator":{"engine":"bippy-1.2.0"}}}}