android_kernel_samsung_univ.../net/tipc
Michal Kubeček 65d30f7545 tipc: check minimum bearer MTU
commit 3de81b758853f0b29c61e246679d20b513c4cfec upstream.

Qian Zhang (张谦) reported a potential socket buffer overflow in
tipc_msg_build() which is also known as CVE-2016-8632: due to
insufficient checks, a buffer overflow can occur if MTU is too short for
even tipc headers. As anyone can set device MTU in a user/net namespace,
this issue can be abused by a regular user.

As agreed in the discussion on Ben Hutchings' original patch, we should
check the MTU at the moment a bearer is attached rather than for each
processed packet. We also need to repeat the check when bearer MTU is
adjusted to new device MTU. UDP case also needs a check to avoid
overflow when calculating bearer MTU.

Fixes: b97bf3fd8f ("[TIPC] Initial merge")
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Reported-by: Qian Zhang (张谦) <zhangqian-c@360.cn>
Acked-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 4.4:
 - Adjust context
 - NETDEV_GOING_DOWN and NETDEV_CHANGEMTU cases in net notifier were combined]
Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-04-30 05:49:28 +02:00
..
addr.c
addr.h
bcast.c tipc: unlock in error path 2016-03-03 15:07:07 -08:00
bcast.h
bearer.c tipc: check minimum bearer MTU 2017-04-30 05:49:28 +02:00
bearer.h tipc: check minimum bearer MTU 2017-04-30 05:49:28 +02:00
core.c tipc: make dist queue pernet 2017-04-30 05:49:27 +02:00
core.h tipc: make dist queue pernet 2017-04-30 05:49:27 +02:00
discover.c
discover.h
eth_media.c
ib_media.c
Kconfig
link.c tipc: move linearization of buffers to generic code 2016-09-24 10:07:35 +02:00
link.h
Makefile
msg.c
msg.h
name_distr.c tipc: fix random link resets while adding a second bearer 2017-04-30 05:49:28 +02:00
name_distr.h
name_table.c
name_table.h
net.c
net.h
netlink_compat.c tipc: fix nl compat regression for link statistics 2016-09-15 08:27:49 +02:00
netlink.c
netlink.h
node.c tipc: correct error in node fsm 2017-04-30 05:49:27 +02:00
node.h
server.c
server.h
socket.c tipc: fix socket timer deadlock 2017-04-30 05:49:28 +02:00
socket.h
subscr.c tipc: fix nullptr crash during subscription cancel 2016-09-15 08:27:44 +02:00
subscr.h
sysctl.c
udp_media.c tipc: check minimum bearer MTU 2017-04-30 05:49:28 +02:00