KVM: coalesced_mmio: add bounds checking
authorMatt Delco <delco@chromium.org>
Mon, 16 Sep 2019 21:16:54 +0000 (14:16 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 18 Sep 2019 13:56:55 +0000 (15:56 +0200)
commitb60fe990c6b07ef6d4df67bc0530c7c90a62623a
tree49d837232351e9b86c9632ccc509f26596e269ed
parenta9c20bb0206ae9384bd470a6832dd8913730add9
KVM: coalesced_mmio: add bounds checking

The first/last indexes are typically shared with a user app.
The app can change the 'last' index that the kernel uses
to store the next result.  This change sanity checks the index
before using it for writing to a potentially arbitrary address.

This fixes CVE-2019-14821.

Cc: stable@vger.kernel.org
Fixes: 5f94c1741bdc ("KVM: Add coalesced MMIO support (common part)")
Signed-off-by: Matt Delco <delco@chromium.org>
Signed-off-by: Jim Mattson <jmattson@google.com>
Reported-by: syzbot+983c866c3dd6efa3662a@syzkaller.appspotmail.com
[Use READ_ONCE. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
virt/kvm/coalesced_mmio.c