--- x/net/core/filter.c +++ y/net/core/filter.c @@ -2147,6 +2147,10 @@ static int __bpf_redirect_no_mac(struct kfree_skb(skb); return -ERANGE; } + if (skb_headlen(skb) <= mlen + sizeof(struct iphdr)) { + kfree_skb(skb); + return -ERANGE; + } if (mlen) { __skb_pull(skb, mlen);