Security update for qemu

Announcement ID: SUSE-SU-2018:0831-1
Rating: important
References:
Cross-References:
CVSS scores:
  • CVE-2017-15119 ( SUSE ): 5.8 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:L
  • CVE-2017-15119 ( NVD ): 8.6 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H
  • CVE-2017-15124 ( SUSE ): 5.3 CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
  • CVE-2017-15124 ( NVD ): 7.5 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2017-16845 ( SUSE ): 3.5 CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:N/A:N
  • CVE-2017-16845 ( NVD ): 10.0 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:H
  • CVE-2017-16845 ( NVD ): 10.0 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
  • CVE-2017-17381 ( SUSE ): 4.3 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:L
  • CVE-2017-17381 ( NVD ): 6.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:N/A:H
  • CVE-2017-17381 ( NVD ): 6.5 CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:N/A:H
  • CVE-2017-18030 ( SUSE ): 2.8 CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:N/A:L
  • CVE-2017-18030 ( NVD ): 4.4 CVSS:3.0/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H
  • CVE-2017-18043 ( SUSE ): 2.5 CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L
  • CVE-2017-18043 ( NVD ): 5.5 CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
  • CVE-2017-5715 ( SUSE ): 7.1 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
  • CVE-2017-5715 ( NVD ): 5.6 CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
  • CVE-2017-5715 ( NVD ): 5.6 CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
  • CVE-2018-5683 ( SUSE ): 4.2 CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:C/C:L/I:N/A:L
  • CVE-2018-5683 ( NVD ): 6.0 CVSS:3.0/AV:L/AC:L/PR:H/UI:N/S:C/C:N/I:N/A:H
  • CVE-2018-7550 ( SUSE ): 8.1 CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
  • CVE-2018-7550 ( NVD ): 8.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
  • CVE-2018-7550 ( NVD ): 8.8 CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Affected Products:
  • SUSE Linux Enterprise Desktop 12 SP2
  • SUSE Linux Enterprise High Performance Computing 12 SP2
  • SUSE Linux Enterprise Server 12 SP2
  • SUSE Linux Enterprise Server for SAP Applications 12 SP2
  • SUSE Linux Enterprise Server for the Raspberry Pi 12-SP2

An update that solves nine vulnerabilities and has four security fixes can now be installed.

Description:

This update for qemu fixes the following issues:

This update has the next round of Spectre v2 related patches, which now integrate with corresponding changes in libvirt. (CVE-2017-5715 bsc#1068032)

The January 2018 release of qemu initially addressed the Spectre v2 vulnerability for KVM guests by exposing the spec-ctrl feature for all x86 vcpu types, which was the quick and dirty approach, but not the proper solution.

We replaced our initial patch by the patches from upstream.

This update defines spec_ctrl and ibpb cpu feature flags as well as new cpu models which are clones of existing models with either -IBRS or -IBPB added to the end of the model name. These new vcpu models explicitly include the new feature(s), whereas the feature flags can be added to the cpu parameter as with other features. In short, for continued Spectre v2 protection, ensure that either the appropriate cpu feature flag is added to the QEMU command-line, or one of the new cpu models is used.

Although migration from older versions is supported, the new cpu features won't be properly exposed to the guest until it is restarted with the cpu features explicitly added. A reboot is insufficient.

A warning patch is added which attempts to detect a migration from a qemu version which had the quick and dirty fix (it only detects certain cases, but hopefully is helpful.) For additional information on Spectre v2 as it relates to QEMU, see: https://www.qemu.org/2018/02/14/qemu-2-11-1-and-spectre-update/

A patch is added to continue to detect Spectre v2 mitigation features (as shown by cpuid), and if found provide that feature to guests, even if running on older KVM (kernel) versions which do not yet expose that feature to QEMU. (bsc#1082276)

These two patches will be removed when we can reasonably assume everyone is running with the appropriate updates.

Also security fixes for the following CVE issues are included:

  • CVE-2017-15119: The Network Block Device (NBD) server in Quick Emulator (QEMU), was vulnerable to a denial of service issue. It could occur if a client sent large option requests, making the server waste CPU time on reading up to 4GB per request. A client could use this flaw to keep the NBD server from serving other requests, resulting in DoS. (bsc#1070144)
  • CVE-2017-15124: VNC server implementation in Quick Emulator (QEMU) was found to be vulnerable to an unbounded memory allocation issue, as it did not throttle the framebuffer updates sent to its client. If the client did not consume these updates, VNC server allocates growing memory to hold onto this data. A malicious remote VNC client could use this flaw to cause DoS to the server host. (bsc#1073489)
  • CVE-2017-16845: The PS2 driver in Qemu did not validate 'rptr' and 'count' values during guest migration, leading to out-of-bounds access. (bsc#1068613)
  • CVE-2017-17381: The Virtio Vring implementation in QEMU allowed local OS guest users to cause a denial of service (divide-by-zero error and QEMU process crash) by unsetting vring alignment while updating Virtio rings. (bsc#1071228)
  • CVE-2017-18030: A problem in the Cirrus driver in Qemu allowed local OS guest privileged users to cause a denial of service (out-of-bounds array access and QEMU process crash) via vectors related to negative pitch. (bsc#1076179)
  • CVE-2017-18043: Integer overflow in the macro ROUND_UP (n, d) in Quick Emulator (Qemu) allowed a user to cause a denial of service (Qemu process crash). (bsc#1076775)
  • CVE-2018-5683: The VGA driver in Qemu allowed local OS guest privileged users to cause a denial of service (out-of-bounds read and QEMU process crash) by leveraging improper memory address validation. (bsc#1076114)
  • CVE-2018-7550: The multiboot functionality in Quick Emulator (aka QEMU) allowed local guest OS users to execute arbitrary code on the QEMU host via an out-of-bounds read or write memory access. (bsc#1083291)

Also the following bugs were fixed:

  • Eliminate bogus use of CPUID_7_0_EDX_PRED_CMD which we've carried since the initial Spectre v2 patch was added. EDX bit 27 of CPUID Leaf 07H, Sub-leaf 0 provides status on STIBP, and not the PRED_CMD MSR. Exposing the STIBP CPUID feature bit to the guest is wrong in general, since the VM doesn't directly control the scheduling of physical hyperthreads. This is left strictly to the L0 hypervisor.

  • Spectre fixes for IBM Z series by providing more hw features to guests (bsc#1076814)

  • Pre-add group kvm for qemu-tools (bsc#1040202)
  • the qemu-tools package also needs a prerequire of group management tools, from the shadow package. (bsc#1085598)

Patch Instructions:

To install this SUSE update use the SUSE recommended installation methods like YaST online_update or "zypper patch".
Alternatively you can run the command listed for your product:

  • SUSE Linux Enterprise Desktop 12 SP2
    zypper in -t patch SUSE-SLE-DESKTOP-12-SP2-2018-555=1
  • SUSE Linux Enterprise Server for the Raspberry Pi 12-SP2
    zypper in -t patch SUSE-SLE-RPI-12-SP2-2018-555=1
  • SUSE Linux Enterprise High Performance Computing 12 SP2
    zypper in -t patch SUSE-SLE-SERVER-12-SP2-2018-555=1
  • SUSE Linux Enterprise Server 12 SP2
    zypper in -t patch SUSE-SLE-SERVER-12-SP2-2018-555=1
  • SUSE Linux Enterprise Server for SAP Applications 12 SP2
    zypper in -t patch SUSE-SLE-SERVER-12-SP2-2018-555=1

Package List:

  • SUSE Linux Enterprise Desktop 12 SP2 (x86_64)
    • qemu-tools-debuginfo-2.6.2-41.37.1
    • qemu-tools-2.6.2-41.37.1
    • qemu-block-curl-2.6.2-41.37.1
    • qemu-2.6.2-41.37.1
    • qemu-kvm-2.6.2-41.37.1
    • qemu-debugsource-2.6.2-41.37.1
    • qemu-block-curl-debuginfo-2.6.2-41.37.1
    • qemu-x86-2.6.2-41.37.1
  • SUSE Linux Enterprise Desktop 12 SP2 (noarch)
    • qemu-sgabios-8-41.37.1
    • qemu-ipxe-1.0.0-41.37.1
    • qemu-seabios-1.9.1-41.37.1
    • qemu-vgabios-1.9.1-41.37.1
  • SUSE Linux Enterprise Server for the Raspberry Pi 12-SP2 (aarch64)
    • qemu-arm-debuginfo-2.6.2-41.37.1
    • qemu-guest-agent-2.6.2-41.37.1
    • qemu-tools-debuginfo-2.6.2-41.37.1
    • qemu-tools-2.6.2-41.37.1
    • qemu-block-curl-2.6.2-41.37.1
    • qemu-block-rbd-debuginfo-2.6.2-41.37.1
    • qemu-block-ssh-2.6.2-41.37.1
    • qemu-block-rbd-2.6.2-41.37.1
    • qemu-block-ssh-debuginfo-2.6.2-41.37.1
    • qemu-arm-2.6.2-41.37.1
    • qemu-debugsource-2.6.2-41.37.1
    • qemu-2.6.2-41.37.1
    • qemu-block-curl-debuginfo-2.6.2-41.37.1
    • qemu-guest-agent-debuginfo-2.6.2-41.37.1
    • qemu-lang-2.6.2-41.37.1
  • SUSE Linux Enterprise Server for the Raspberry Pi 12-SP2 (noarch)
    • qemu-ipxe-1.0.0-41.37.1
  • SUSE Linux Enterprise High Performance Computing 12 SP2 (aarch64 x86_64)
    • qemu-guest-agent-2.6.2-41.37.1
    • qemu-tools-debuginfo-2.6.2-41.37.1
    • qemu-tools-2.6.2-41.37.1
    • qemu-block-curl-2.6.2-41.37.1
    • qemu-block-rbd-debuginfo-2.6.2-41.37.1
    • qemu-block-ssh-2.6.2-41.37.1
    • qemu-block-rbd-2.6.2-41.37.1
    • qemu-block-ssh-debuginfo-2.6.2-41.37.1
    • qemu-debugsource-2.6.2-41.37.1
    • qemu-2.6.2-41.37.1
    • qemu-block-curl-debuginfo-2.6.2-41.37.1
    • qemu-guest-agent-debuginfo-2.6.2-41.37.1
    • qemu-lang-2.6.2-41.37.1
  • SUSE Linux Enterprise High Performance Computing 12 SP2 (aarch64)
    • qemu-arm-2.6.2-41.37.1
    • qemu-arm-debuginfo-2.6.2-41.37.1
  • SUSE Linux Enterprise High Performance Computing 12 SP2 (noarch)
    • qemu-sgabios-8-41.37.1
    • qemu-ipxe-1.0.0-41.37.1
    • qemu-seabios-1.9.1-41.37.1
    • qemu-vgabios-1.9.1-41.37.1
  • SUSE Linux Enterprise High Performance Computing 12 SP2 (x86_64)
    • qemu-x86-debuginfo-2.6.2-41.37.1
    • qemu-kvm-2.6.2-41.37.1
    • qemu-x86-2.6.2-41.37.1
  • SUSE Linux Enterprise Server 12 SP2 (aarch64 ppc64le s390x x86_64)
    • qemu-guest-agent-2.6.2-41.37.1
    • qemu-tools-debuginfo-2.6.2-41.37.1
    • qemu-tools-2.6.2-41.37.1
    • qemu-block-curl-2.6.2-41.37.1
    • qemu-block-ssh-2.6.2-41.37.1
    • qemu-block-ssh-debuginfo-2.6.2-41.37.1
    • qemu-debugsource-2.6.2-41.37.1
    • qemu-2.6.2-41.37.1
    • qemu-block-curl-debuginfo-2.6.2-41.37.1
    • qemu-guest-agent-debuginfo-2.6.2-41.37.1
    • qemu-lang-2.6.2-41.37.1
  • SUSE Linux Enterprise Server 12 SP2 (aarch64)
    • qemu-arm-2.6.2-41.37.1
    • qemu-arm-debuginfo-2.6.2-41.37.1
  • SUSE Linux Enterprise Server 12 SP2 (aarch64 x86_64)
    • qemu-block-rbd-debuginfo-2.6.2-41.37.1
    • qemu-block-rbd-2.6.2-41.37.1
  • SUSE Linux Enterprise Server 12 SP2 (noarch)
    • qemu-sgabios-8-41.37.1
    • qemu-ipxe-1.0.0-41.37.1
    • qemu-seabios-1.9.1-41.37.1
    • qemu-vgabios-1.9.1-41.37.1
  • SUSE Linux Enterprise Server 12 SP2 (ppc64le)
    • qemu-ppc-debuginfo-2.6.2-41.37.1
    • qemu-ppc-2.6.2-41.37.1
  • SUSE Linux Enterprise Server 12 SP2 (s390x x86_64)
    • qemu-kvm-2.6.2-41.37.1
  • SUSE Linux Enterprise Server 12 SP2 (s390x)
    • qemu-s390-2.6.2-41.37.1
    • qemu-s390-debuginfo-2.6.2-41.37.1
  • SUSE Linux Enterprise Server 12 SP2 (x86_64)
    • qemu-x86-debuginfo-2.6.2-41.37.1
    • qemu-x86-2.6.2-41.37.1
  • SUSE Linux Enterprise Server for SAP Applications 12 SP2 (ppc64le x86_64)
    • qemu-guest-agent-2.6.2-41.37.1
    • qemu-tools-debuginfo-2.6.2-41.37.1
    • qemu-tools-2.6.2-41.37.1
    • qemu-block-curl-2.6.2-41.37.1
    • qemu-block-ssh-2.6.2-41.37.1
    • qemu-block-ssh-debuginfo-2.6.2-41.37.1
    • qemu-debugsource-2.6.2-41.37.1
    • qemu-2.6.2-41.37.1
    • qemu-block-curl-debuginfo-2.6.2-41.37.1
    • qemu-guest-agent-debuginfo-2.6.2-41.37.1
    • qemu-lang-2.6.2-41.37.1
  • SUSE Linux Enterprise Server for SAP Applications 12 SP2 (ppc64le)
    • qemu-ppc-debuginfo-2.6.2-41.37.1
    • qemu-ppc-2.6.2-41.37.1
  • SUSE Linux Enterprise Server for SAP Applications 12 SP2 (x86_64)
    • qemu-x86-debuginfo-2.6.2-41.37.1
    • qemu-block-rbd-debuginfo-2.6.2-41.37.1
    • qemu-kvm-2.6.2-41.37.1
    • qemu-block-rbd-2.6.2-41.37.1
    • qemu-x86-2.6.2-41.37.1
  • SUSE Linux Enterprise Server for SAP Applications 12 SP2 (noarch)
    • qemu-sgabios-8-41.37.1
    • qemu-ipxe-1.0.0-41.37.1
    • qemu-seabios-1.9.1-41.37.1
    • qemu-vgabios-1.9.1-41.37.1

References: