Following along at

        CVE-2018-3646 Common Vulnerabilities and Exposures
         https://www.suse.com/security/cve/CVE-2018-3646/

&

        Security Vulnerability: Spectre Variant 4 (Speculative Store Bypass) 
aka CVE-2018-3639.
         https://www.suse.com/support/kb/doc/?id=7022937

piecing together a number of other posts, and noting

        
https://lists.opensuse.org/opensuse-security-announce/2018-12/msg00073.html

                An update that solves 9 vulnerabilities and has four fixes
                is now available. This update for xen fixes the following 
issues:

                Update to Xen 4.10.2 bug fix release (bsc#1027519).
                ...
                - CVE-2018-3646: Mitigations for VMM aspects of L1 Terminal 
Fault (XSA-273) (bsc#1091107)

which references,

        Bug 1091107 - VUL-0: CVE-2018-3646: xen: L1 Terminal Fault -VMM 
(XSA-273)
         https://bugzilla.suse.com/show_bug.cgi?id=1091107
        ==> Status: RESOLVED FIXED

on

        uname -rm
                5.0.7-lp150.5.g012b5f1-default x86_64

        lsb_release -rd
                Description:    openSUSE Leap 15.0
                Release:        15.0

        grep "model name" /proc/cpuinfo | head -n 1
                model name      : Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz

booting a Xen Dom0 host,

        dmesg | grep -i "xen version"
                [    1.188399] Xen version: 4.12.0_09-lp150.640 (preserve-AD)


In my grub cfg,

        GRUB_CMDLINE_LINUX_XEN_REPLACE="... spectre_v2=retpoline,generic 
spec_store_bypass_disable=on ..."
        GRUB_CMDLINE_XEN="... spec-ctrl=ssbd,l1d-flush=true 
pv-l1tf=dom0=true,domu=true smt=true ucode=scan ..."


Updating microcode in Xen environments
 https://www.suse.com/support/kb/doc/?id=7022546


after grub re-config & mkinitrd, then reboot,

per

        Updating microcode in Xen environments
         https://www.suse.com/support/kb/doc/?id=7022546

verifying,

        egrep "family|model|stepping" /proc/cpuinfo -m 4
                cpu family      : 6
                model           : 60
                model name      : Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz
                stepping        : 3

in hex,

        [cpu family]-[model]-[stepping] === 06-3C-03

        rpm -qa | grep -i ucode-intel
                ucode-intel-20190312-lp150.3.1.x86_64

        rpm -ql ucode-intel | grep -i 06-3C-03
                /lib/firmware/intel-ucode/06-3c-03

        lsinitrd /boot/initrd-5.0.7-lp150.5.g012b5f1-default
                Image: /boot/initrd-5.0.7-lp150.5.g012b5f1-default: 18M
                
========================================================================
                Early CPIO image
                
========================================================================
                drwxr-xr-x   3 root     root            0 Apr 14 20:15 .
                -rw-r--r--   1 root     root            2 Apr 14 20:15 
early_cpio
                drwxr-xr-x   3 root     root            0 Apr 14 20:15 kernel
                drwxr-xr-x   3 root     root            0 Apr 14 20:15 
kernel/x86
                drwxr-xr-x   2 root     root            0 Apr 14 20:15 
kernel/x86/microcode
                -rw-r--r--   1 root     root        23552 Apr 14 20:15 
kernel/x86/microcode/GenuineIntel.bin
                
========================================================================
                Version: dracut-044-lp150.14.27.1

        grep -m1 microcode /proc/cpuinfo
                microcode       : 0x25


in serial log

        (XEN) [00000027c847dc37] Xen version 4.12.0_09-lp150.640 
([email protected]) (gcc (SUSE Linux) 8.3.1 20190305 [gcc-8-branch revi
        sion 269383]) debug=n  Thu Apr 11 22:29:39 UTC 2019
        (XEN) [00000027cb3e1267] Latest ChangeSet: 
        (XEN) [00000027cbff3231] Bootloader: EFI
        (XEN) [00000027ccb72e3d] Command line: dom0_mem=4016M,max:4096M 
bootscrub=false dom0_max_vcpus=4 spec-ctrl=ssbd,l1d-flush=true 
pv-l1tf=dom0=true,domu=true smt=true com1=115200,8n1,pci console=com1,vga 
console_timestamps console_to_ring conring_size=64 sched=credit2 reboot=acpi 
ucode=scan log_buf_len=16M loglvl=warning guest_loglvl=none/warning 
noreboot=false iommu=verbose
        ...
        (XEN) [00000028c099c50b] Speculative mitigation facilities:
        (XEN) [00000028c19f6e50]   Hardware features: IBRS/IBPB STIBP L1D_FLUSH 
SSBD
        (XEN) [00000028c2f57689]   Compiled-in support: INDIRECT_THUNK 
SHADOW_PAGING
        (XEN) [00000028c445abaf]   Xen settings: BTI-Thunk RETPOLINE, 
SPEC_CTRL: IBRS- SSBD+, Other: IBPB L1D_FLUSH
        (XEN) [00000028c61da08b]   L1TF: believed vulnerable, maxphysaddr L1D 
46, CPUID 39, Safe address 8000000000
        (XEN) [00000028c7f67494]   Support for HVM VMs: MSR_SPEC_CTRL RSB 
EAGER_FPU
        (XEN) [00000028c94630dc]   Support for PV VMs: MSR_SPEC_CTRL RSB 
EAGER_FPU
        (XEN) [00000028ca92b21c]   XPTI (64-bit PV only): Dom0 enabled, DomU 
enabled (with PCID)
        (XEN) [00000028cc1cfa07]   PV L1TF shadowing: Dom0 enabled, DomU enabled

then,

        cd /sys/devices/system/cpu/vulnerabilities/
        for f in $(ls); do echo -e "\n$f"; cat $f; done

                l1tf
                Mitigation: PTE Inversion

                meltdown
                Unknown (XEN PV detected, hypervisor mitigation required)

                spec_store_bypass
                Mitigation: Speculative Store Bypass disabled

                spectre_v1
                Mitigation: __user pointer sanitization

                spectre_v2
                Mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, 
STIBP: conditional, RSB filling


BUT, checking with

        spectre-meltdown-checker.sh

still returns "STATUS: VULNERABLE",

        ...
        CVE-2018-3646 aka 'Foreshadow-NG (VMM), L1 terminal fault'
        * Information from the /sys interface:
        * This system is a host running an hypervisor:  YES
        * Mitigation 1 (KVM)
          * EPT is disabled:  N/A  (the kvm_intel module is not loaded)
        * Mitigation 2
          * L1D flush is supported by kernel:  YES  (found flush_l1d in kernel 
image)
          * L1D flush enabled:  UNKNOWN  (unrecognized mode)
          * Hardware-backed L1D flush supported:  NO  (flush will be done in 
software, this is slower)
          * Hyper-Threading (SMT) is enabled:  YES
        > STATUS:  VULNERABLE  (disable EPT or enabled L1D flushing to mitigate 
the vulnerability)
        ...


Since I'm on Xen, 'Mitigation 1' isn't an option.

Two things catch my attention:

        (1) L1D flush enabled:  UNKNOWN  (unrecognized mode)

Not sure yet why I'm seeing UNKNOWN here,

&

        (2) Hardware-backed L1D flush supported:  NO

even though

        (XEN) [00000028c19f6e50]   Hardware features: IBRS/IBPB STIBP L1D_FLUSH 
SSBD
                                                                      ^^^^^^^^^

What's missing in my config to mitigate/remove the CVE-2018-3646 vulnerability?

-- 
To unsubscribe, e-mail: [email protected]
To contact the owner, e-mail: [email protected]

Reply via email to