linux-mainline/net/mptcp
Maxim Mikityanskiy 07718be265 mptcp: Fix out of bounds when parsing TCP options
The TCP option parser in mptcp (mptcp_get_options) could read one byte
out of bounds. When the length is 1, the execution flow gets into the
loop, reads one byte of the opcode, and if the opcode is neither
TCPOPT_EOL nor TCPOPT_NOP, it reads one more byte, which exceeds the
length of 1.

This fix is inspired by commit 9609dad263 ("ipv4: tcp_input: fix stack
out of bounds when parsing TCP options.").

Cc: Young Xiao <92siuyang@gmail.com>
Fixes: cec37a6e41 ("mptcp: Handle MP_CAPABLE options for outgoing connections")
Signed-off-by: Maxim Mikityanskiy <maximmi@nvidia.com>
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-06-10 14:26:18 -07:00
..
crypto_test.c
crypto.c
ctrl.c
diag.c
Kconfig
Makefile
mib.c
mib.h
mptcp_diag.c
options.c mptcp: Fix out of bounds when parsing TCP options 2021-06-10 14:26:18 -07:00
pm_netlink.c mptcp: validate 'id' when stopping the ADD_ADDR retransmit timer 2021-05-25 15:56:20 -07:00
pm.c
protocol.c mptcp: fix sk_forward_memory corruption on retransmission 2021-05-28 13:51:39 -07:00
protocol.h mptcp: validate 'id' when stopping the ADD_ADDR retransmit timer 2021-05-25 15:56:20 -07:00
sockopt.c
subflow.c mptcp: do not reset MP_CAPABLE subflow on mapping errors 2021-05-28 13:51:40 -07:00
syncookies.c
token_test.c
token.c