hv_netvsc: Add validation for untrusted Hyper-V values
authorAndres Beltran <lkmlabelt@gmail.com>
Wed, 16 Sep 2020 09:47:27 +0000 (11:47 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 17 Sep 2020 23:21:26 +0000 (16:21 -0700)
commit44144185951a0ff9b50bf21c0cd1f79ff688e5ca
tree0d9b84891620e2df5ed43245daad4c07fa96dff6
parentfd944dc24336922656a48f4608bfb41abdcdc4aa
hv_netvsc: Add validation for untrusted Hyper-V values

For additional robustness in the face of Hyper-V errors or malicious
behavior, validate all values that originate from packets that Hyper-V
has sent to the guest in the host-to-guest ring buffer. Ensure that
invalid values cannot cause indexing off the end of an array, or
subvert an existing validation via integer overflow. Ensure that
outgoing packets do not have any leftover guest memory that has not
been zeroed out.

Signed-off-by: Andres Beltran <lkmlabelt@gmail.com>
Co-developed-by: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: netdev@vger.kernel.org
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/hyperv/hyperv_net.h
drivers/net/hyperv/netvsc.c
drivers/net/hyperv/netvsc_drv.c
drivers/net/hyperv/rndis_filter.c