On Tue, Sep 11, 2018 at 09:02:48PM +0200, Tobias Hommel wrote: > > > Subject: [PATCH RFC] xfrm: Fix NULL pointer dereference when skb_dst_force > > > clears the dst_entry. > > > > > > Since commit 222d7dbd258d ("net: prevent dst uses after free") > > > skb_dst_force() might clear the dst_entry attached to the skb. > > > The xfrm code don't expect this to happen, so we crash with > > > a NULL pointer dereference in this case. Fix it by checking > > > skb_dst(skb) for NULL after skb_dst_force() and drop the packet > > > in cast the dst_entry was cleared. > > > > > > Fixes: 222d7dbd258d ("net: prevent dst uses after free") > > > Reported-by: Tobias Hommel <netdev-l...@genoetigt.de> > > > Reported-by: Kristian Evensen <kristian.even...@gmail.com> > > > Reported-by: Wolfgang Walter <li...@stwm.de> > > > Signed-off-by: Steffen Klassert <steffen.klass...@secunet.com> > > > --- > > > > This patch fixes the problem here. > > > > XfrmFwdHdrError gets around 80 at the very beginning and remains so. > > Probably > > this happens when some route are changed/set then. > > > > Regards and thanks, > > Same here, we're now running stable for ~6 hours, XfrmFwdHdrError is at 220. > This is less than 1 lost packet per minute, which seems to be okay for now.
Thanks a lot for testing! This is now applied to the ipsec tree.