]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
gue: validate REMCSUM private option length
authorQihang <q.h.hack.winter@gmail.com>
Wed, 1 Jul 2026 02:26:17 +0000 (10:26 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 3 Jul 2026 08:34:53 +0000 (09:34 +0100)
commitd335dcc6f521571d57117b8deeebc940836e5450
tree5721894c1fa9a8b86b03103da5d4265bca756f09
parent62e7df6d042aeebd5efb581074e28865c04477be
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.

Fixes: c1aa8347e73e ("gue: Protocol constants for remote checksum offload")
Signed-off-by: Qihang <q.h.hack.winter@gmail.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/gue.h