[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20210301112842.GB2966489@gauss3.secunet.de>
Date: Mon, 1 Mar 2021 12:28:42 +0100
From: Steffen Klassert <steffen.klassert@...unet.com>
To: Evan Nimmo <evan.nimmo@...iedtelesis.co.nz>
CC: <herbert@...dor.apana.org.au>, <davem@...emloft.net>,
<kuba@...nel.org>, <netdev@...r.kernel.org>,
<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] xfrm: Use actual socket sk instead of skb socket for
xfrm_output_resume
On Mon, Mar 01, 2021 at 05:02:08PM +1300, Evan Nimmo wrote:
> A situation can occur where the interface bound to the sk is different
> to the interface bound to the sk attached to the skb. The interface
> bound to the sk is the correct one however this information is lost inside
> xfrm_output2 and instead the sk on the skb is used in xfrm_output_resume
> instead. This assumes that the sk bound interface and the bound interface
> attached to the sk within the skb are the same which can lead to lookup
> failures inside ip_route_me_harder resulting in the packet being dropped.
>
> We have an l2tp v3 tunnel with ipsec protection. The tunnel is in the
> global VRF however we have an encapsulated dot1q tunnel interface that
> is within a different VRF. We also have a mangle rule that marks the
> packets causing them to be processed inside ip_route_me_harder.
>
> Prior to commit 31c70d5956fc ("l2tp: keep original skb ownership") this
> worked fine as the sk attached to the skb was changed from the dot1q
> encapsulated interface to the sk for the tunnel which meant the interface
> bound to the sk and the interface bound to the skb were identical.
> Commit 46d6c5ae953c ("netfilter: use actual socket sk rather than skb sk
> when routing harder") fixed some of these issues however a similar
> problem existed in the xfrm code.
>
> Signed-off-by: Evan Nimmo <evan.nimmo@...iedtelesis.co.nz>
Please add a proper 'Fixes' tag so that it can be backported into
the stable trees.
Thanks!
Powered by blists - more mailing lists