KVM: x86: Introduce segmented_write_std
authorSteve Rutherford <srutherford@google.com>
Thu, 12 Jan 2017 02:28:29 +0000 (18:28 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 12 Jan 2017 13:34:58 +0000 (14:34 +0100)
commit129a72a0d3c8e139a04512325384fe5ac119e74d
tree56a0adfdeff6c007ba3a5f36577036f20e7d5150
parentcef84c302fe051744b983a92764d3fcca933415d
KVM: x86: Introduce segmented_write_std

Introduces segemented_write_std.

Switches from emulated reads/writes to standard read/writes in fxsave,
fxrstor, sgdt, and sidt.  This fixes CVE-2017-2584, a longstanding
kernel memory leak.

Since commit 283c95d0e389 ("KVM: x86: emulate FXSAVE and FXRSTOR",
2016-11-09), which is luckily not yet in any final release, this would
also be an exploitable kernel memory *write*!

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Cc: stable@vger.kernel.org
Fixes: 96051572c819194c37a8367624b285be10297eca
Fixes: 283c95d0e3891b64087706b344a4b545d04a6e62
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Steve Rutherford <srutherford@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/emulate.c