3) NEW QEMU (w/ backport) GUEST: Bionic

#### REGULAR QEMU GUEST IN NEW QEMU

Spectre and Meltdown mitigation detection tool v0.42-1-g91d0699

Checking for vulnerabilities on current system Kernel is Linux
4.18.0-23-generic #24~18.04.1-Ubuntu SMP Thu Jun 13 17:08:52 UTC 2019 x86_64
CPU is Intel(R) Xeon(R) Gold 6252 CPU @ 2.10GHz

-------

Hardware check

* Hardware support (CPU microcode) for mitigation techniques

  * Indirect Branch Restricted Speculation (IBRS)
    * SPEC_CTRL MSR is available:  YES
    * CPU indicates IBRS capability:  YES  (SPEC_CTRL feature bit)
  * Indirect Branch Prediction Barrier (IBPB)
    * PRED_CMD MSR is available:  YES
    * CPU indicates IBPB capability:  YES  (SPEC_CTRL feature bit)
  * Single Thread Indirect Branch Predictors (STIBP)
    * SPEC_CTRL MSR is available:  YES
    * CPU indicates STIBP capability:  NO
  * Speculative Store Bypass Disable (SSBD)
    * CPU indicates SSBD capability:  YES  (Intel SSBD)
  * L1 data cache invalidation
    * FLUSH_CMD MSR is available:  NO
    * CPU indicates L1D flush capability:  NO
  * Microarchitecture Data Sampling
    * VERW instruction is available:  YES  (MD_CLEAR feature bit)
  * Enhanced IBRS (IBRS_ALL)
    * CPU indicates ARCH_CAPABILITIES MSR availability:  YES
    * ARCH_CAPABILITIES MSR advertises IBRS_ALL capability:  YES
  * CPU explicitly indicates not being vulnerable to Meltdown/L1TF (RDCL_NO):  
YES
  * CPU explicitly indicates not being vulnerable to Variant 4 (SSB_NO):  NO
  * CPU/Hypervisor indicates L1D flushing is not necessary on this system:  YES
  * Hypervisor indicates host CPU might be vulnerable to RSB underflow (RSBA):  
NO
  * CPU explicitly indicates not being vulnerable to Microarchitectural Data 
Sampling (MDS_NO):  NO
  * CPU supports Software Guard Extensions (SGX):  NO
  * CPU microcode is known to cause stability problems:  NO  (model 0x55 family 
0x6 stepping 0x6 ucode 0x1 cpuid 0x50656)
  * CPU microcode is the latest known available version:  NO  (latest version 
is 0x4000024 dated 2019/04/07 according to builtin MCExtractor DB v112 - 
2019/05/22)

--------

* CPU vulnerability to the speculative execution attack variants

  * Vulnerable to CVE-2017-5753 (Spectre Variant 1, bounds check bypass):  YES
  * Vulnerable to CVE-2017-5715 (Spectre Variant 2, branch target injection):  
YES
  * Vulnerable to CVE-2017-5754 (Variant 3, Meltdown, rogue data cache load):  
NO
  * Vulnerable to CVE-2018-3640 (Variant 3a, rogue system register read):  YES
  * Vulnerable to CVE-2018-3639 (Variant 4, speculative store bypass):  YES
  * Vulnerable to CVE-2018-3615 (Foreshadow (SGX), L1 terminal fault):  NO
  * Vulnerable to CVE-2018-3620 (Foreshadow-NG (OS), L1 terminal fault):  NO
  * Vulnerable to CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault):  NO
  * Vulnerable to CVE-2018-12126 (Fallout, microarchitectural store buffer data 
sampling (MSBDS)):  YES
  * Vulnerable to CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer 
data sampling (MFBDS)):  YES
  * Vulnerable to CVE-2018-12127 (RIDL, microarchitectural load port data 
sampling (MLPDS)):  YES
  * Vulnerable to CVE-2019-11091 (RIDL, microarchitectural data sampling 
uncacheable memory (MDSUM)):  YES

--------

## CVE-2017-5753 aka 'Spectre Variant 1, bounds check bypass'

* Mitigated according to the /sys interface:  YES  (Mitigation: __user pointer 
sanitization)
* Kernel has array_index_mask_nospec:  YES  (1 occurrence(s) found of x86 64 
bits array_index_mask_nospec())
* Kernel has the Red Hat/Ubuntu patch:  NO
* Kernel has mask_nospec64 (arm64):  NO

> STATUS:  NOT VULNERABLE  (Mitigation: __user pointer sanitization)

## CVE-2017-5715 aka 'Spectre Variant 2, branch target injection'

* Mitigated according to the /sys interface:  YES  (Mitigation: Enhanced IBRS, 
IBPB: conditional, RSB filling)
* Mitigation 1
  * Kernel is compiled with IBRS support:  YES
    * IBRS enabled and active:  YES
  * Kernel is compiled with IBPB support:  YES
    * IBPB enabled and active:  YES
* Mitigation 2
  * Kernel has branch predictor hardening (arm):  NO
  * Kernel compiled with retpoline option:  YES
  * Kernel supports RSB filling:  YES

> STATUS:  NOT VULNERABLE  (IBRS + IBPB are mitigating the
vulnerability)

## CVE-2017-5754 aka 'Variant 3, Meltdown, rogue data cache load'

* Mitigated according to the /sys interface:  YES  (Not affected)
* Kernel supports Page Table Isolation (PTI):  YES
  * PTI enabled and active:  NO
  * Reduced performance impact of PTI:  YES  (CPU supports INVPCID, performance 
impact of PTI will be greatly reduced)
* Running as a Xen PV DomU:  NO

> STATUS:  NOT VULNERABLE  (your CPU vendor reported your CPU model as
not vulnerable)

## CVE-2018-3640 aka 'Variant 3a, rogue system register read'

* CPU microcode mitigates the vulnerability:  YES

> STATUS:  NOT VULNERABLE  (your CPU microcode mitigates the
vulnerability)

## CVE-2018-3639 aka 'Variant 4, speculative store bypass'

* Mitigated according to the /sys interface:  YES  (Mitigation: Speculative 
Store Bypass disabled via prctl and seccomp)
* Kernel supports disabling speculative store bypass (SSB):  YES  (found in 
/proc/self/status)
* SSB mitigation is enabled and active:  YES  (per-thread through prctl)
* SSB mitigation currently active for selected processes:  YES  
(systemd-journald systemd-logind systemd-timesyncd systemd-udevd)

> STATUS:  NOT VULNERABLE  (Mitigation: Speculative Store Bypass
disabled via prctl and seccomp)

## CVE-2018-3615 aka 'Foreshadow (SGX), L1 terminal fault'

* CPU microcode mitigates the vulnerability:  N/A

> STATUS:  NOT VULNERABLE  (your CPU vendor reported your CPU model as
not vulnerable)

## CVE-2018-3620 aka 'Foreshadow-NG (OS), L1 terminal fault'

* Mitigated according to the /sys interface:  YES  (Not affected)
* Kernel supports PTE inversion:  YES  (found in kernel image)
* PTE inversion enabled and active:  NO

> STATUS:  NOT VULNERABLE  (your CPU vendor reported your CPU model as
not vulnerable)

## CVE-2018-3646 aka 'Foreshadow-NG (VMM), L1 terminal fault'

* Information from the /sys interface: Not affected
* This system is a host running a hypervisor:  NO
* Mitigation 1 (KVM)
  * EPT is disabled:  NO
* Mitigation 2
  * L1D flush is supported by kernel:  YES  (found flush_l1d in kernel image)
  * L1D flush enabled:  NO
  * Hardware-backed L1D flush supported:  NO  (flush will be done in software, 
this is slower)
  * Hyper-Threading (SMT) is enabled:  NO

> STATUS:  NOT VULNERABLE  (your CPU vendor reported your CPU model as
not vulnerable)

## CVE-2018-12126 aka 'Fallout, microarchitectural store buffer data
sampling (MSBDS)'

* Mitigated according to the /sys interface:  YES  (Mitigation: Clear CPU 
buffers; SMT Host state unknown)
* Kernel supports using MD_CLEAR mitigation:  YES  (md_clear found in 
/proc/cpuinfo)
* Kernel mitigation is enabled and active:  YES
* SMT is either mitigated or disabled:  NO

> STATUS:  NOT VULNERABLE  (Mitigation: Clear CPU buffers; SMT Host
state unknown)

## CVE-2018-12130 aka 'ZombieLoad, microarchitectural fill buffer data
sampling (MFBDS)'

* Mitigated according to the /sys interface:  YES  (Mitigation: Clear CPU 
buffers; SMT Host state unknown)
* Kernel supports using MD_CLEAR mitigation:  YES  (md_clear found in 
/proc/cpuinfo)
* Kernel mitigation is enabled and active:  YES
* SMT is either mitigated or disabled:  NO

> STATUS:  NOT VULNERABLE  (Mitigation: Clear CPU buffers; SMT Host
state unknown)

## CVE-2018-12127 aka 'RIDL, microarchitectural load port data sampling
(MLPDS)'

* Mitigated according to the /sys interface:  YES  (Mitigation: Clear CPU 
buffers; SMT Host state unknown)
* Kernel supports using MD_CLEAR mitigation:  YES  (md_clear found in 
/proc/cpuinfo)
* Kernel mitigation is enabled and active:  YES
* SMT is either mitigated or disabled:  NO

> STATUS:  NOT VULNERABLE  (Mitigation: Clear CPU buffers; SMT Host
state unknown)

## CVE-2019-11091 aka 'RIDL, microarchitectural data sampling
uncacheable memory (MDSUM)'

* Mitigated according to the /sys interface:  YES  (Mitigation: Clear CPU 
buffers; SMT Host state unknown)
* Kernel supports using MD_CLEAR mitigation:  YES  (md_clear found in 
/proc/cpuinfo)
* Kernel mitigation is enabled and active:  YES
* SMT is either mitigated or disabled:  NO

> STATUS:  NOT VULNERABLE  (Mitigation: Clear CPU buffers; SMT Host
state unknown)

--------

> SUMMARY:

CVE-2017-5753:OK
CVE-2017-5715:OK
CVE-2017-5754:OK
CVE-2018-3640:OK
CVE-2018-3639:OK
CVE-2018-3615:OK
CVE-2018-3620:OK
CVE-2018-3646:OK
CVE-2018-12126:OK
CVE-2018-12130:OK
CVE-2018-12127:OK
CVE-2019-11091:OK

--------

$ sudo /usr/bin/qemu-system-x86_64 -name guest="guest" -machine accel=kvm -cpu
host,arch_capabilities=on,ssbd=on,md-clear=on,
wbnoinvd=off,ibpb=off,virt-ssbd=off,rdctl-no=yes,ibrs-all=yes,rsba=yes,skip-l1dfl-vmentry=yes,ssb-no=yes
-m 2048 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid
7e55c71a-558f-412c-8445-db0e95fc549f -display none -no-user-config -nodefaults
-rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-shutdown
-global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on
-kernel /var/lib/libvirt/images/guest/vmlinuz -initrd
/var/lib/libvirt/images/guest/initrd.img -append "root=/dev/vda noresume
console=tty0 console=ttyS0,38400n8 apparmor=0 net.ifnames=0 crashkernel=256M"
-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive
file=/var/lib/libvirt/images/guest/disk01.ext4.qcow2,format=qcow2,if=none,id=drive-virtio-disk0
-device
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on
-serial stdio

HOST DOES NOT SUPPORT:

wbnoinvd
ibpb
virt-ssbd
rsba
ssb-no

2019-06-21T13:06:03.833616Z qemu-system-x86_64: warning: host doesn't support 
requested feature: CPUID.80000008H:EBX.wbnoinvd [bit 9]
2019-06-21T13:06:03.833648Z qemu-system-x86_64: warning: host doesn't support 
requested feature: CPUID.80000008H:EBX.ibpb [bit 12]
2019-06-21T13:06:03.833652Z qemu-system-x86_64: warning: host doesn't support 
requested feature: CPUID.80000008H:EBX.virt-ssbd [bit 25] 
2019-06-21T13:43:40.851310Z qemu-system-x86_64: warning: host doesn't support 
requested feature: MSR(10AH).rsba [bit 2]
2019-06-21T13:43:40.851339Z qemu-system-x86_64: warning: host doesn't support 
requested feature: MSR(10AH).ssb-no [bit 4]


inaddy@guest:~/spectre-meltdown-checker$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel(R) Xeon(R) Gold 6252 CPU @ 2.10GHz
stepping        : 6
microcode       : 0x1
cpu MHz         : 2095.076
cache size      : 16384 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm
constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni
pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt
tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm
3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb ibrs_enhanced
tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep
bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb
avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat umip pku ospke
avx512_vnni md_clear arch_capabilities
bugs            : spectre_v1 spectre_v2 spec_store_bypass mds
bogomips        : 4190.15
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1828495

Title:
  [KVM][CLX] CPUID_7_0_EDX_ARCH_CAPABILITIES is not enabled in VM.

Status in intel:
  New
Status in linux package in Ubuntu:
  Confirmed
Status in qemu package in Ubuntu:
  Confirmed
Status in linux source package in Bionic:
  New
Status in qemu source package in Bionic:
  Confirmed
Status in linux source package in Cosmic:
  New
Status in qemu source package in Cosmic:
  Confirmed
Status in linux source package in Disco:
  New
Status in qemu source package in Disco:
  Confirmed
Status in linux source package in Eoan:
  Confirmed
Status in qemu source package in Eoan:
  Confirmed

Bug description:
  [Impact]

   * QEMU does not support IceLake and CascadeLake CPUs specific features.
   * Most important feature to be supported is: IA32_ARCH_CAPABILITIES MSR.
   * With IA32_ARCH_CAPABILITIES, QEMU is able to advertise HW mitigations:
     - Rogue Data Cache Load
     - Enhanced IBRS
     - RSB Alternate
     - L1D flush need on VMENTRY
     - speculative Store Bypass
     to guests, as described in document:
     Intel 336996-Speculative-Execution-Side-Channel-Mitigations.pdf

  [Test Case]

   * From Original Description:

  """
  1. Boot up guest using: -cpu Cascadelake-Server

  [root@clx-2s2 yexin]# qemu-system-x86_64 -accel kvm -drive
  if=virtio,id=hd,file=/home/x/x,format=qcow2  -m 4096 -smp 4 -cpu
  Cascadelake-Server -serial stdio

  char device redirected to /dev/pts/3 (label serial0)

  qemu-system-x86_64: warning: host doesn't support requested feature:
  CPUID.07H:ECX [bit 4]

  qemu-system-x86_64: warning: host doesn't support requested feature:
  CPUID.07H:ECX [bit 4]

  qemu-system-x86_64: warning: host doesn't support requested feature:
  CPUID.07H:ECX [bit 4]

  qemu-system-x86_64: warning: host doesn't support requested feature:
  CPUID.07H:ECX [bit 4]

  2. To check CPU ID related to features[FEAT_7_0_EDX]
  :CPUID_7_0_EDX_ARCH_CAPABILITIES

  Expected Result: Both host and guest's CPUID.07H EDX bit 29 should be
  1.

  Actual Result:

  Host's cpuid: 0x00000007 0x00: eax=0x00000000 ebx=0xd39ffffb
  ecx=0x00000818 edx=0xbc000000  (EDX bit 29=1)

  Guest's cpuid : 0x00000007 0x00: eax=0x00000000 ebx=0xd19f0fb9
  ecx=0x00000818 edx=0x84000000 (EDX bit 29=0)

  Commit:2bdb76c015df7125783d8394d6339d181cb5bc30

  Target Kerned: 5.1
  Target Release: 19.10

  """

  [Regression Potential]

   * Most changes are related to CPU type definitions and its supported
  features. They are all based in upstream changes but, for obvious
  reasons, backporting and/or cherry-picking those could bring issues.
  Biggest concern is breaking something that currently works. Right now,
  the parts being changed that could affect other CPU types would be
  related to a small refactoring of how the features are organized, and
  that would be seen right away when trying to start a new VM after the
  package is installed.

   * Other tests, related to the features being backported, are being
  done by our KVM regression tests, including migration combinations, to
  reduce chances that a regression is introduced.

  [Other Info]
   
   * N/A

To manage notifications about this bug go to:
https://bugs.launchpad.net/intel/+bug/1828495/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to