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: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

In the Linux kernel, the gve driver miscalculates the header length for UDP GSO packets by always calling skb_tcp_all_headers(), which reads the TCP doff field. Since UDP packets do not have a TCP header, the code uses an illegal length that can range from 0 to 60 bytes instead of the correct UDP header length plus eight bytes. This miscalculation shifts the segment boundary calculation in gve_can_send_tso(), causing the driver either to disable GSO unnecessarily or to hand the device a packet with more data descriptors than the maximum allowed. The resulting kernel or driver misbehavior can lead to packet drops, crashes, or other network stack instability, effectively disrupting service.

Affected Systems

The affected product is the Linux kernel. No specific version list is provided in the CVE data; the fix was introduced in a recent commit to the mainline kernel. Any Linux distribution that does not include this commit is potentially vulnerable.

Risk and Exploitability

The CVSS score is 5.5 and the EPSS score is less than 1% suggesting limited exploitation probability. The vulnerability is not listed in CISA’s KEV catalog. The risk is moderate: an attacker could attempt to trigger the flaw by sending crafted UDP packets that activate GSO on a GVE device; this attack vector is inferred from the description because the CVE does not explicitly state it. If the flaw is triggered, it could cause service disruption. No high‑severity impact such as remote code execution is documented.

Generated by OpenCVE AI on October 20, 2026 at 20:39 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.
  • If the system cannot be updated immediately, disable UDP GSO for the GVE device or any interface that relies on GVE TSO, using driver options or kernel parameters.
  • Continuously monitor kernel logs and network behavior for errors or dropped packets that might indicate GSO misbehavior.

Generated by OpenCVE AI on October 20, 2026 at 20:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 20 Oct 2026 12:45:00 +0000

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

None

cvssV3_1

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

threat_severity

Moderate


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-19T10:19:12.217

Link: CVE-2026-98557

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-18T00:00:00Z

Links: CVE-2026-98557 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-20T20:45:14Z

Weaknesses
  • CWE-843

    Access of Resource Using Incompatible Type ('Type Confusion')