From: David Hildenbrand <david@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Cc: kernel-hardening@lists.openwall.com,
"Kees Cook" <keescook@chromium.org>,
"Radim Krčmář" <rkrcmar@redhat.com>,
"Christoffer Dall" <christoffer.dall@linaro.org>,
"Marc Zyngier" <marc.zyngier@arm.com>,
"Christian Borntraeger" <borntraeger@de.ibm.com>,
"Cornelia Huck" <cohuck@redhat.com>,
"James Hogan" <james.hogan@imgtec.com>,
"Paul Mackerras" <paulus@samba.org>
Subject: Re: [PATCH 0/2] KVM: fixes for the kernel-hardening tree
Date: Mon, 23 Oct 2017 11:52:51 +0200 [thread overview]
Message-ID: <f13340f5-4027-181b-7e41-e9bc434b195c@redhat.com> (raw)
In-Reply-To: <20171020232525.7387-1-pbonzini@redhat.com>
On 21.10.2017 01:25, Paolo Bonzini wrote:
> Two KVM ioctls (KVM_GET/SET_CPUID2) directly access the cpuid_entries
> field of struct kvm_vcpu_arch. Therefore, the new usercopy hardening
> work in linux-next, which forbids copies from and to slab objects
> unless they are from kmalloc or explicitly whitelisted, breaks KVM
> completely.
>
> This series fixes it by adding the two new usercopy arguments
> to kvm_init (more precisely to a new function kvm_init_usercopy,
> while kvm_init passes zeroes as a default).
>
> There's also another broken ioctl, KVM_XEN_HVM_CONFIG, but it is
> obsolete and not a big deal at all.
>
> I'm Ccing all submaintainers in case they have something similar
> going on in their kvm_arch and kvm_vcpu_arch structs. KVM has a
> pretty complex userspace API, so thorough with linux-next is highly
> recommended.
I assume on s390x, at least
kvm_arch_vcpu_ioctl_get_one_reg() and
kvm_arch_vcpu_ioctl_set_one_reg()
have to be fixed.
Christian, are you already looking into this?
>
> Many thanks to Thomas Gleixner for reporting this to me.
>
> Paolo
>
> Paolo Bonzini (2):
> KVM: allow setting a usercopy region in struct kvm_vcpu
> KVM: fix KVM_XEN_HVM_CONFIG ioctl
>
> arch/x86/include/asm/kvm_host.h | 3 +++
> arch/x86/kvm/svm.c | 4 ++--
> arch/x86/kvm/vmx.c | 4 ++--
> arch/x86/kvm/x86.c | 17 ++++++++++++++---
> include/linux/kvm_host.h | 13 +++++++++++--
> virt/kvm/kvm_main.c | 13 ++++++++-----
> 6 files changed, 40 insertions(+), 14 deletions(-)
>
--
Thanks,
David
next prev parent reply other threads:[~2017-10-23 9:52 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-20 23:25 [PATCH 0/2] KVM: fixes for the kernel-hardening tree Paolo Bonzini
2017-10-20 23:25 ` [PATCH 1/2] KVM: allow setting a usercopy region in struct kvm_vcpu Paolo Bonzini
2017-10-21 14:53 ` Kees Cook
2017-10-20 23:25 ` [PATCH 2/2] KVM: fix KVM_XEN_HVM_CONFIG ioctl Paolo Bonzini
2017-10-23 9:52 ` David Hildenbrand [this message]
2017-10-23 11:10 ` [PATCH 0/2] KVM: fixes for the kernel-hardening tree Christian Borntraeger
2017-10-23 12:39 ` Cornelia Huck
2017-10-23 14:15 ` Paolo Bonzini
2017-10-25 9:45 ` David Hildenbrand
2017-10-25 10:31 ` Christian Borntraeger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f13340f5-4027-181b-7e41-e9bc434b195c@redhat.com \
--to=david@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=christoffer.dall@linaro.org \
--cc=cohuck@redhat.com \
--cc=james.hogan@imgtec.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=paulus@samba.org \
--cc=pbonzini@redhat.com \
--cc=rkrcmar@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox