From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Dumazet Subject: Re: KASAN: use-after-free Read in __dev_queue_xmit Date: Wed, 03 Jan 2018 22:53:14 -0800 Message-ID: <1515048794.131759.4.camel@gmail.com> References: <94eb2c0ce3aa27cfa40561ec2dc3@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Cc: alexander.deucher@amd.com, Andrey Konovalov , Anoob Soman , chris@chris-wilson.co.uk, David Miller , elena.reshetova@intel.com, Greg Kroah-Hartman , Kees Cook , LKML , Mike Maloney , mchehab@kernel.org, netdev , rami.rosen@intel.com, Sowmini Varadhan , syzkaller-bugs@googlegroups.com, Willem de Bruijn To: Eric Dumazet , syzbot Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On Wed, 2018-01-03 at 21:13 -0800, Eric Dumazet wrote: > Note: all commands must start from beginning of the line in the email body. > > I guess skb_probe_transport_header() should be hardened to reject malicious > packets given by user space, instead of being gentle. Although bug triggered for this particular repro is in flow dissector :/ I will test : diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c index 15ce300637650e17fcab7e378b20fe7972686d46..544bddf08e13c7f6e47aadc737244c9ba5af56b2 100644 --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c @@ -976,8 +976,8 @@ bool __skb_flow_dissect(const struct sk_buff *skb,  out_good:         ret = true;   -       key_control->thoff = (u16)nhoff;  out: +       key_control->thoff = min_t(u16, nhoff, skb ? skb->len : hlen);         key_basic->n_proto = proto;         key_basic->ip_proto = ip_proto;   @@ -985,7 +985,6 @@ bool __skb_flow_dissect(const struct sk_buff *skb,    out_bad:         ret = false; -       key_control->thoff = min_t(u16, nhoff, skb ? skb->len : hlen);         goto out;  }  EXPORT_SYMBOL(__skb_flow_dissect);