On Fri, Nov 01, 2013 at 03:01:10PM +0800, Jason Wang wrote: > We don't validate iph->ihl which may lead a dead loop if we meet a IPIP > skb whose iph->ihl is zero. Fix this by failing immediately when iph->ihl > is evil (less than 5). > > This issue were introduced by commit ec5efe7946280d1e84603389a1030ccec0a767ae > (rps: support IPIP encapsulation). > > Cc: Eric Dumazet <[email protected]> > Cc: Petr Matousek <[email protected]> > Cc: Michael S. Tsirkin <[email protected]> > Cc: Daniel Borkmann <[email protected]> > Signed-off-by: Jason Wang <[email protected]>
Acked-by: Michael S. Tsirkin <[email protected]> > --- > This patch is needed for stable. > --- > net/core/flow_dissector.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c > index 8d7d0dd..143b6fd 100644 > --- a/net/core/flow_dissector.c > +++ b/net/core/flow_dissector.c > @@ -40,7 +40,7 @@ again: > struct iphdr _iph; > ip: > iph = skb_header_pointer(skb, nhoff, sizeof(_iph), &_iph); > - if (!iph) > + if (!iph || iph->ihl < 5) > return false; > > if (ip_is_fragment(iph)) > -- > 1.8.1.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

