Re: [PATCH net] dccp/tcp: fix routing redirect race

From: Eric Dumazet
Date: Wed Mar 08 2017 - 23:41:07 EST


On Thu, 2017-03-09 at 14:42 +1100, Jonathan Maxwell wrote:
> Sorry let me resend in plain text mode.
>
> On Thu, Mar 9, 2017 at 1:10 PM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote:
> > On Thu, 2017-03-09 at 12:15 +1100, Jon Maxwell wrote:
> >> We have seen a few incidents lately where a dst_enty has been freed
> >> with a dangling TCP socket reference (sk->sk_dst_cache) pointing to that
> >> dst_entry. If the conditions/timings are right a crash then ensues when the
> >> freed dst_entry is referenced later on. A Common crashing back trace is:
> >
> > Very nice catch !
> >
>
> Thanks Eric.
>
> > Don't we have a similar issue for IPv6 ?
> >
> >
>
> Good point.
>
> We checked and as far as we can tell IPv6 does not invalidate the route.
> So it should be safer.

Simply doing :

__sk_dst_check(sk, np->dst_cookie);

is racy, even before calling dst->ops->redirect(dst, sk, skb);

(if socket is owned by user)