Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-72046— gve: fix header buffer corruption with header-split and HW-GRO

CVSS 9.8 · Critical EPSS 0.63% · P47

Affected Version Matrix 10

VendorProductVersion RangeStatus
LinuxLinux5e37d8254e7f551dda62e7590e819d69c7491845< 84d3753d4bf284ef770ead6dee2270aaabb3ef41affected
5e37d8254e7f551dda62e7590e819d69c7491845< 35267819b25074084130b6a7be18bbaf44d3ae74affected
5e37d8254e7f551dda62e7590e819d69c7491845< 9f8e7f59b0c2f466be74bd923726b0f5496c27adaffected
5e37d8254e7f551dda62e7590e819d69c7491845< d676c9a73bdcd8237425dbb826f2bd1a25c36e40affected
6.9affected
< 6.9unaffected
6.12.101≤ 6.12.*unaffected
6.18.40≤ 6.18.*unaffected
… +2 more rows
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2026-72046

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
gve: fix header buffer corruption with header-split and HW-GRO
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: gve: fix header buffer corruption with header-split and HW-GRO The DQO RX datapath programs a per-buffer-queue-descriptor header_buf_addr at post time and reads the split header back at completion time. Both the post and the read currently index the header buffer by queue position rather than by the buffer's identity: - post (gve_rx_post_buffers_dqo): header_buf_addr is computed from bufq->tail - read (gve_rx_dqo): the header is read from desc_idx (the completion queue head index) This relies on the buffer-queue index and the completion-queue index being equal for the start of every packet, i.e. on the device consuming posted buffers and returning completions in the exact same order. That assumption does not hold once HW-GRO is enabled with multiple flows: coalesced segments are accepted and completed in an order that may differ from the order buffers were posted, and segments from different flows may interleave. That results in two problems: 1. Wrong header slot on read. Because the read offset is derived from the completion index (desc_idx) while the device wrote the header to the address programmed for the buffer's buf_id, the driver can copy a header belonging to a different packet. This shows up as throughput drop (about 30% drop and large numbers of TCP retransmissions) with header-split and HW-GRO both enabled and many streams. 2. Header buffer reused while still owned by the device. The driver advances bufq->head by one per completion and re-posts buffers based on that. Arrival of N RX completions only guarantees that at least N RX buffer descriptors have been read by the device. It does not guarantee that the device has relinquished the ownership of all the buffers corresponding to those N descriptors. With out-of-order completions (e.g. the completion for a packet copied into buffer N arrives before the completion for a packet copied into buffer N-1), the driver can re-post and overwrite a header buffer that the device is still going to write into, corrupting the header of a packet whose completion has not yet been processed. Fix both issues by indexing the header buffer by buf_id on both the post and read paths. Reading from buf_id's slot is therefore always correct regardless of completion ordering (fixes problem 1). Indexing by buf_id also ties each header slot to the lifetime of its buffer state. A buffer state is only returned to the free/recycle lists when its own completion (buf_id) is processed, so its header slot can only be re-posted after the device is done with it. This makes header slot reuse safe under out-of-order completions (fixes problem 2). Allocate (gve_rx_alloc_hdr_bufs) and free (gve_rx_free_hdr_bufs) the header buffers based on num_buf_states to match the buf_id indexing.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会开源的一个操作系统内核。 Linux kernel 6.9版本存在安全漏洞,该漏洞源于gve驱动在启用header-split和HW-GRO时按队列位置而非缓冲区身份索引header buffer,可能导致header buffer损坏,造成网络吞吐量下降和TCP重传。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux 5e37d8254e7f551dda62e7590e819d69c7491845 ~ 84d3753d4bf284ef770ead6dee2270aaabb3ef41 -
LinuxLinux 6.9 -

II. Public POCs for CVE-2026-72046

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-72046

登录查看更多情报信息。

Patches & Fixes for CVE-2026-72046 (4)

Same Patch Batch · Linux · 2026-08-15 · 846 CVEs total

CVE-2026-7428010.0 CRITICALcrypto: marvell/octeontx - fix DMA cleanup using wrong loop index
CVE-2026-7240710.0 CRITICALgeneve: validate inner network offset in geneve_gro_complete()
CVE-2026-7240810.0 CRITICALgeneve: gate GRO hint in geneve_gro_complete() on gs->gro_hint
CVE-2026-7427910.0 CRITICALcrypto: cavium/cpt - fix DMA cleanup using wrong loop index
CVE-2026-7447510.0 CRITICALvxlan: use neigh_ha_snapshot() in route_shortcircuit()
CVE-2026-7430910.0 CRITICALvdpa/octeon_ep: fix IRQ-to-ring mapping in interrupt handler
CVE-2026-7242110.0 CRITICALipv4: fib: Don't ignore error route in local/main tables.
CVE-2026-724939.9 CRITICALnet: serialize netif_running() check in enqueue_to_backlog()
CVE-2026-724639.8 CRITICALxfrm: Fix dev use-after-free in xfrm async resumption
CVE-2026-722489.8 CRITICALnetfilter: flowtable: support IPIP tunnel with direct xmit
CVE-2026-723819.8 CRITICALksmbd: fix use-after-free of fp->owner.name in durable handle owner check
CVE-2026-724779.8 CRITICALfs/ntfs3: call _ntfs_bad_inode() when failing to rename
CVE-2026-724739.8 CRITICALxprtrdma: Decouple req recycling from RPC completion
CVE-2026-724729.8 CRITICALnfs: use nfsi->rwsem to protect traversal of the file lock list
CVE-2026-744069.8 CRITICALvxlan: Fix potential null-ptr-deref in vxlan_gro_prepare_receive().
CVE-2026-722219.8 CRITICALsunrpc: wait for in-flight TLS handshake callback when cancel loses race
CVE-2026-721379.8 CRITICALxfrm: nat_keepalive: avoid double free on send error
CVE-2026-743769.8 CRITICALmd/raid10: reset read_slot when reusing r10bio for discard
CVE-2026-744019.8 CRITICALdlm: fix add msg handle in send_queue ordered
CVE-2026-722349.8 CRITICALbatman-adv: access unicast_ttvn skb->data only after skb realloc

Showing top 20 of 846 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-72046

No comments yet


Leave a comment