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 <[email protected]>
> > > Reported-by: Kristian Evensen <[email protected]>
> > > Reported-by: Wolfgang Walter <[email protected]>
> > > Signed-off-by: Steffen Klassert <[email protected]>
> > > ---
> >
> > 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.