hv_netvsc: Allocate the recv_buf buffers after NVSP_MSG1_TYPE_SEND_RECV_BUF
authorAndrea Parri (Microsoft) <parri.andrea@gmail.com>
Wed, 3 Feb 2021 11:35:12 +0000 (12:35 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 5 Feb 2021 04:37:04 +0000 (20:37 -0800)
commit0102eeedb71757d6589144cf019424f69b3ab289
treee23732006cef5b76202b670aaf5887b0b9a29e71
parent6b4950d9501e80ad09060e9e5afb3ca3d12ba65e
hv_netvsc: Allocate the recv_buf buffers after NVSP_MSG1_TYPE_SEND_RECV_BUF

The recv_buf buffers are allocated in netvsc_device_add().  Later in
netvsc_init_buf() the response to NVSP_MSG1_TYPE_SEND_RECV_BUF allows
the host to set up a recv_section_size that could be bigger than the
(default) value used for that allocation.  The host-controlled value
could be used by a malicious host to bypass the check on the packet's
length in netvsc_receive() and hence to overflow the recv_buf buffer.

Move the allocation of the recv_buf buffers into netvsc_init_but().

Reported-by: Juan Vazquez <juvazq@microsoft.com>
Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
Fixes: 0ba35fe91ce34f ("hv_netvsc: Copy packets sent by Hyper-V out of the receive buffer")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/hyperv/netvsc.c