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

gve: DQO: fix header length used by gve_can_send_tso() for UDP GSO

gve_can_send_tso() computes how many buffers each segment of a GSO
packet would span, and for this it needs the length of the headers
that the device replicates in front of every segment.

It unconditionally uses skb_tcp_all_headers(), which reads the doff
field of the TCP header. SKB_GSO_UDP_L4 packets have no TCP header:
tcp_hdrlen() then reads one byte of the UDP payload, and header_len
can be anything in [0, 60] instead of the transport offset plus the
eight bytes of the UDP header that gve_prep_tso() programs into the
TSO context descriptor.

A wrong header length shifts all the segment boundaries computed in
the loop, so the number of buffers per segment can be over or under
estimated. In the first case, GSO is needlessly disabled for this
packet by gve_features_check_dqo() and the stack has to segment it.
In the second case, the driver hands the device a packet whose
segments span more than GVE_TX_MAX_DATA_DESCS buffers.

Use the UDP header length for SKB_GSO_UDP_L4 packets, matching what
gve_prep_tso() does.
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

In the Linux kernel, the gve driver incorrectly calculates the header length for UDP GSO packets by unconditionally using skb_tcp_all_headers(), which reads the TCP doff field. Because UDP packets lack a TCP header, the function ends up using a length that can be anywhere from 0 to 60 bytes, instead of the correct UDP header length plus the eight bytes of the UDP header programmed into the TSO context descriptor. This miscalculation shifts the computed segment boundaries, causing either the kernel to unnecessarily disable GSO and perform manual segmentation, or the driver to hand the device a packet whose segments span more than the device’s maximum number of data descriptors. This bug can lead to kernel or device misbehavior, such as out‑of‑bounds descriptor usage, which in turn can crash the driver, drop packets, or otherwise destabilize the network stack. The impact is reasonably severe, potentially resulting in a denial of service if an attacker can repeatedly trigger the condition using crafted UDP traffic. Because the vulnerability is tied to the kernel’s handling of UDP GSO, the primary attack vector is local or remote traffic that enables GSO on the affected GVE device. An attacker could send large UDP packets from a vulnerable host or exploit a remote service that transmits data through the GVE driver.

Affected Systems

The affected product is the Linux kernel. No specific version list is provided in the data, but the fix was introduced in a recent commit to the mainline kernel. Any distribution that uses the Linux kernel without the new commit is potentially vulnerable.

Risk and Exploitability

The CVSS score is not listed, and the EPSS score is not available, so the exact severity is unknown. The vulnerability is not tracked in CISA’s KEV catalog. However, the bug can trigger a loss of service and, depending on kernel handling, could lead to driver crashes. The risk is moderate to high for systems that enable GSO on GVE devices and lack the patch.

Generated by OpenCVE AI on October 18, 2026 at 18:05 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the commit updating gve_can_send_tso() for UDP GSO (any recent stable release including the fix should suffice).
  • If the system cannot be updated immediately, disable UDP GSO for the GVE device or any network interface that relies on GVE TSO by configuring the driver or using kernel parameters to turn off GSO for that traffic path.
  • Continuously monitor kernel logs and network behavior for errors or dropped packets that might indicate GSO misbehavior, and validate that the GVE driver operates within descriptor limits.

Generated by OpenCVE AI on October 18, 2026 at 18:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: gve: DQO: fix header length used by gve_can_send_tso() for UDP GSO gve_can_send_tso() computes how many buffers each segment of a GSO packet would span, and for this it needs the length of the headers that the device replicates in front of every segment. It unconditionally uses skb_tcp_all_headers(), which reads the doff field of the TCP header. SKB_GSO_UDP_L4 packets have no TCP header: tcp_hdrlen() then reads one byte of the UDP payload, and header_len can be anything in [0, 60] instead of the transport offset plus the eight bytes of the UDP header that gve_prep_tso() programs into the TSO context descriptor. A wrong header length shifts all the segment boundaries computed in the loop, so the number of buffers per segment can be over or under estimated. In the first case, GSO is needlessly disabled for this packet by gve_features_check_dqo() and the stack has to segment it. In the second case, the driver hands the device a packet whose segments span more than GVE_TX_MAX_DATA_DESCS buffers. Use the UDP header length for SKB_GSO_UDP_L4 packets, matching what gve_prep_tso() does.
Title gve: DQO: fix header length used by gve_can_send_tso() for UDP GSO
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-10-19T09:21:41.472Z

Reserved: 2026-09-25T10:25:14.357Z

Link: CVE-2026-98557

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:07.830

Modified: 2026-10-18T16:17:07.830

Link: CVE-2026-98557

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-19T04:15:03Z

Weaknesses

No weakness.