Reviewed-by: Yuval Shaia <yuval.shaia...@gmail.com>
Tested-by: Yuval Shaia <yuval.shaia...@gmail.com>

On Wed, 16 Jun 2021 at 14:06, Marcel Apfelbaum <marcel.apfelb...@gmail.com>
wrote:

> From: Marcel Apfelbaum <mar...@redhat.com>
>
> Ensure mremap boundaries not trusting the guest kernel to
> pass the correct buffer length.
>
> Fixes: CVE-2021-3582
> Reported-by: VictorV (Kunlun Lab) <vv474172...@gmail.com>
> Tested-by: VictorV (Kunlun Lab) <vv474172...@gmail.com>
> Signed-off-by: Marcel Apfelbaum <mar...@redhat.com>
> ---
>  hw/rdma/vmw/pvrdma_cmd.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/hw/rdma/vmw/pvrdma_cmd.c b/hw/rdma/vmw/pvrdma_cmd.c
> index f59879e257..dadab4966b 100644
> --- a/hw/rdma/vmw/pvrdma_cmd.c
> +++ b/hw/rdma/vmw/pvrdma_cmd.c
> @@ -38,6 +38,12 @@ static void *pvrdma_map_to_pdir(PCIDevice *pdev,
> uint64_t pdir_dma,
>          return NULL;
>      }
>
> +    length = ROUND_UP(length, TARGET_PAGE_SIZE);
> +    if (nchunks * TARGET_PAGE_SIZE != length) {
> +        rdma_error_report("Invalid nchunks/length (%u, %lu)", nchunks,
> length);
> +        return NULL;
> +    }
> +
>      dir = rdma_pci_dma_map(pdev, pdir_dma, TARGET_PAGE_SIZE);
>      if (!dir) {
>          rdma_error_report("Failed to map to page directory");
> --
> 2.17.2
>
>

Reply via email to