Skip to content

Commit 75f139a

Browse files
Andrew Honigbonzini
authored andcommitted
KVM: x86: Add memory barrier on vmcs field lookup
This adds a memory barrier when performing a lookup into the vmcs_field_to_offset_table. This is related to CVE-2017-5753. Signed-off-by: Andrew Honig <[email protected]> Reviewed-by: Jim Mattson <[email protected]> Cc: [email protected] Signed-off-by: Paolo Bonzini <[email protected]>
1 parent bebc608 commit 75f139a

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

arch/x86/kvm/vmx.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -884,8 +884,16 @@ static inline short vmcs_field_to_offset(unsigned long field)
884884
{
885885
BUILD_BUG_ON(ARRAY_SIZE(vmcs_field_to_offset_table) > SHRT_MAX);
886886

887-
if (field >= ARRAY_SIZE(vmcs_field_to_offset_table) ||
888-
vmcs_field_to_offset_table[field] == 0)
887+
if (field >= ARRAY_SIZE(vmcs_field_to_offset_table))
888+
return -ENOENT;
889+
890+
/*
891+
* FIXME: Mitigation for CVE-2017-5753. To be replaced with a
892+
* generic mechanism.
893+
*/
894+
asm("lfence");
895+
896+
if (vmcs_field_to_offset_table[field] == 0)
889897
return -ENOENT;
890898

891899
return vmcs_field_to_offset_table[field];

0 commit comments

Comments
 (0)