--- a/net/ipv4/fou.c +++ b/net/ipv4/fou.c @@ -1061,6 +1061,9 @@ static int gue_err(struct sk_buff *skb, u32 info) if (validate_gue_flags(guehdr, optlen)) return -EINVAL; + if (guehdr->proto_ctype == IPPROTO_UDP) + return -EOPNOTSUPP; + skb_set_transport_header(skb, -(int)sizeof(struct icmphdr)); ret = gue_err_proto_handler(guehdr->proto_ctype, skb, info);