linux-stable/net/mptcp
Jakub Kicinski 5f64c4c550 ipv6: weaken the v4mapped source check
[ Upstream commit dcc32f4f18 ]

This reverts commit 6af1799aaf.

Commit 6af1799aaf ("ipv6: drop incoming packets having a v4mapped
source address") introduced an input check against v4mapped addresses.
Use of such addresses on the wire is indeed questionable and not
allowed on public Internet. As the commit pointed out

  https://tools.ietf.org/html/draft-itojun-v6ops-v4mapped-harmful-02

lists potential issues.

Unfortunately there are applications which use v4mapped addresses,
and breaking them is a clear regression. For example v4mapped
addresses (or any semi-valid addresses, really) may be used
for uni-direction event streams or packet export.

Since the issue which sparked the addition of the check was with
TCP and request_socks in particular push the check down to TCPv6
and DCCP. This restores the ability to receive UDPv6 packets with
v4mapped address as the source.

Keep using the IPSTATS_MIB_INHDRERRORS statistic to minimize the
user-visible changes.

Fixes: 6af1799aaf ("ipv6: drop incoming packets having a v4mapped source address")
Reported-by: Sunyi Shao <sunyishao@fb.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Acked-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-03-30 14:32:01 +02:00
..
crypto.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-08-05 20:13:21 -07:00
crypto_test.c mptcp: move crypto test to KUNIT 2020-06-26 16:21:39 -07:00
ctrl.c mptcp: enable JOIN requests even if cookies are in use 2020-07-31 16:55:32 -07:00
diag.c mptcp: allow dumping subflow context to userspace 2020-03-29 22:14:48 -07:00
Kconfig mptcp: depends on IPV6 but not as a module 2020-10-21 08:05:40 -07:00
Makefile mptcp: enable JOIN requests even if cookies are in use 2020-07-31 16:55:32 -07:00
mib.c mptcp: print new line in mptcp_seq_show() if mptcp isn't in use 2020-12-07 17:45:29 -08:00
mib.h mptcp: add RM_ADDR related mibs 2020-09-24 19:58:34 -07:00
mptcp_diag.c mptcp: add MPTCP socket diag interface 2020-07-09 12:38:41 -07:00
options.c mptcp: move mptcp_options_received's port initialization 2020-10-20 16:32:36 -07:00
pm.c mptcp: ADD_ADDRs with echo bit are smaller 2020-10-03 17:36:37 -07:00
pm_netlink.c mptcp: Constify mptcp_pm_ops 2020-10-04 21:13:36 -07:00
protocol.c mptcp: skip to next candidate if subflow has unacked data 2021-02-23 15:53:23 +01:00
protocol.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-10-15 12:43:21 -07:00
subflow.c ipv6: weaken the v4mapped source check 2021-03-30 14:32:01 +02:00
syncookies.c mptcp: fix syncookie build error on UP 2020-08-01 11:52:55 -07:00
token.c mptcp: token: fix unititialized variable 2020-11-03 13:08:30 -08:00
token_test.c mptcp: introduce token KUNIT self-tests 2020-06-26 16:21:39 -07:00