Re: [PATCH 4.4 09/46] ipv6: Inhibit IPv4-mapped src address on the wire.

From: Ben Hutchings
Date: Thu Jun 29 2017 - 08:13:56 EST


On Thu, 2017-06-15 at 19:52 +0200, Greg Kroah-Hartman wrote:
> 4.4-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: "Jonathan T. Leighton" <jtleight@xxxxxxxx>
>
>
> [ Upstream commit ec5e3b0a1d41fbda0cc33a45bc9e54e91d9d12c7 ]
>
> This patch adds a check for the problematic case of an IPv4-mapped IPv6
> source address and a destination address that is neither an IPv4-mapped
> IPv6 address nor in6addr_any, and returns an appropriate error. The
> check in done before returning from looking up the route.

I think this needs to be followed by:

commit 00ea1ceebe0d9f2dc1cc2b7bd575a00100c27869
Author: Willem de Bruijn <willemb@xxxxxxxxxx>
Date: Sat Feb 18 19:00:45 2017 -0500

ipv6: release dst on error in ip6_dst_lookup_tail

Ben.

> Signed-off-by: Jonathan T. Leighton <jtleight@xxxxxxxx>
> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
> Signed-off-by: Sasha Levin <alexander.levin@xxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> net/ipv6/ip6_output.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> --- a/net/ipv6/ip6_output.c
> +++ b/net/ipv6/ip6_output.c
> @@ -1004,6 +1004,9 @@ static int ip6_dst_lookup_tail(struct ne
> }
> }
> #endif
> + if (ipv6_addr_v4mapped(&fl6->saddr) &&
> + !(ipv6_addr_v4mapped(&fl6->daddr) || ipv6_addr_any(&fl6->daddr)))
> + return -EAFNOSUPPORT;
>
> return 0;
>
>
>
>

--
Ben Hutchings
Software Developer, Codethink Ltd.