In the Linux kernel, the following vulnerability has been resolved:
gue: validate REMCSUM private option length
GUE private flags can indicate that remote checksum offload metadata is
present. The private flags field itself is accounted for by
guehdr_flags_len(), but guehdr_priv_flags_len() currently returns 0 even
when GUE_PFLAG_REMCSUM is set.
This lets a packet with only the private flags field pass
validate_gue_flags(), after which gue_remcsum() and gue_gro_remcsum()
read the missing REMCSUM start/offset fields from the following bytes.
Account for GUE_PLEN_REMCSUM when GUE_PFLAG_REMCSUM is present so that
malformed packets are rejected during option validation.
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS Score: 9.8
AV:N - Malformed GUE-over-UDP packets reach gue_udp_recv() and gue_gro_receive() through the normal IP/UDP receive path on hosts with FOU/GUE listeners, including internet-facing cloud overlay endpoints.
AC:L - An attacker fully controls the crafted packet and can set GUE_PFLAG_REMCSUM with only the private-flags option present, reliably triggering gue_remcsum()/gue_gro_remcsum() without races or special timing.
PR:N - Exploitation requires only sending UDP to a GUE listener port; no target credentials or local privileges are needed by the remote attacker even though tunnel setup itself requires admin configuration.
UI:N - No victim interaction is required beyond the host already receiving GUE tunnel traffic as part of normal overlay networking operation.
S:U - The flaw corrupts kernel packet buffers during GUE receive processing on the target host and does not inherently cross VM, container, or IOMMU security boundaries.
C:H - Missing REMCSUM length validation lets attacker-controlled start/offset drive remcsum_adjust()/csum_partial() to read beyond the declared GUE options into adjacent skb bytes, enabling memory disclosure primitives.
I:H - remcsum_adjust() performs an out-of-bounds 2-byte write at ptr+offset, and the default partial-checksum path stores attacker-controlled csum_start/csum_offset metadata that can corrupt subsequent checksum offload handling.
A:H - Out-of-bounds REMCSUM processing can trigger kernel oops or panic from invalid memory access or corrupted packet state, causing denial of service on overlay endpoints under repeated attack.
| Attack Vector |
Network |
Scope |
Unchanged |
| Attack Complexity |
Low |
Confidentiality Impact |
High |
| Privileges Required |
None |
Integrity Impact |
High |
| User Interaction |
None |
Availability Impact |
High |
AV:N - Malformed GUE-over-UDP packets reach gue_udp_recv() and gue_gro_receive() through the normal IP/UDP receive path on hosts with FOU/GUE listeners, including internet-facing cloud overlay endpoints.
AC:L - An attacker fully controls the crafted packet and can set GUE_PFLAG_REMCSUM with only the private-flags option present, reliably triggering gue_remcsum()/gue_gro_remcsum() without races or special timing.
PR:N - Exploitation requires only sending UDP to a GUE listener port; no target credentials or local privileges are needed by the remote attacker even though tunnel setup itself requires admin configuration.
UI:N - No victim interaction is required beyond the host already receiving GUE tunnel traffic as part of normal overlay networking operation.
S:U - The flaw corrupts kernel packet buffers during GUE receive processing on the target host and does not inherently cross VM, container, or IOMMU security boundaries.
C:H - Missing REMCSUM length validation lets attacker-controlled start/offset drive remcsum_adjust()/csum_partial() to read beyond the declared GUE options into adjacent skb bytes, enabling memory disclosure primitives.
I:H - remcsum_adjust() performs an out-of-bounds 2-byte write at ptr+offset, and the default partial-checksum path stores attacker-controlled csum_start/csum_offset metadata that can corrupt subsequent checksum offload handling.
A:H - Out-of-bounds REMCSUM processing can trigger kernel oops or panic from invalid memory access or corrupted packet state, causing denial of service on overlay endpoints under repeated attack.
CVSS 3.1