Messages in this thread | | | From | "Duan, Zhenzhong" <> | Subject | RE: [PATCH] KVM: VMX: Fix a TSX_CTRL_CPUID_CLEAR field mask issue | Date | Sun, 26 Sep 2021 01:43:33 +0000 |
| |
>-----Original Message----- >From: Sean Christopherson <seanjc@google.com> >Sent: Wednesday, September 8, 2021 8:08 AM >To: Duan, Zhenzhong <zhenzhong.duan@intel.com> >Cc: kvm@vger.kernel.org; linux-kernel@vger.kernel.org; >pbonzini@redhat.com; vkuznets@redhat.com; wanpengli@tencent.com; >jmattson@google.com; joro@8bytes.org >Subject: Re: [PATCH] KVM: VMX: Fix a TSX_CTRL_CPUID_CLEAR field mask >issue > >On Mon, Sep 06, 2021, Zhenzhong Duan wrote: >> Host value of TSX_CTRL_CPUID_CLEAR field should be unchangable by >> guest, but the mask for this purpose is set to a wrong value. So it >> doesn't take effect. > >It would be helpful to provide a bit more info as to just how bad/boneheaded >this bug is. E.g. > > When updating the host's mask for its MSR_IA32_TSX_CTRL user return entry, > clear the mask in the found uret MSR instead of vmx->guest_uret_msrs[i]. > Modifying guest_uret_msrs directly is completely broken as 'i' does not > point at the MSR_IA32_TSX_CTRL entry. In fact, it's guaranteed to be an > out-of-bounds accesses as is always set to kvm_nr_uret_msrs in a prior > loop. By sheer dumb luck, the fallout is limited to "only" failing to > preserve the host's TSX_CTRL_CPUID_CLEAR. The out-of-bounds access is > benign as it's guaranteed to clear a bit in a guest MSR value, which are > always zero at vCPU creation on both x86-64 and i386. Sorry for late response, I missed this mail by a wrong mail rule. Your comment is more clear, I'll use it in v2.
Thanks Zhenzhong
| |