xfrm: Fix inbound traffic via XFRM interfaces across network namespaces
authorTobias Brunner <tobias@strongswan.org>
Mon, 18 Feb 2019 09:49:39 +0000 (10:49 +0100)
committerSteffen Klassert <steffen.klassert@secunet.com>
Mon, 18 Feb 2019 09:58:54 +0000 (10:58 +0100)
commit660899ddf06ae8bb5bbbd0a19418b739375430c5
tree0a58af56e93caa1b44f33a43eac97f2ea097f474
parentfc2d5cfdcfe2ab76b263d91429caa22451123085
xfrm: Fix inbound traffic via XFRM interfaces across network namespaces

After moving an XFRM interface to another namespace it stays associated
with the original namespace (net in `struct xfrm_if` and the list keyed
with `xfrmi_net_id`), allowing processes in the new namespace to use
SAs/policies that were created in the original namespace.  For instance,
this allows a keying daemon in one namespace to establish IPsec SAs for
other namespaces without processes there having access to the keys or IKE
credentials.

This worked fine for outbound traffic, however, for inbound traffic the
lookup for the interfaces and the policies used the incorrect namespace
(the one the XFRM interface was moved to).

Fixes: f203b76d7809 ("xfrm: Add virtual xfrm interfaces")
Signed-off-by: Tobias Brunner <tobias@strongswan.org>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_interface.c
net/xfrm/xfrm_policy.c