Security update for the Linux Kernel

SUSE Security Update: Security update for the Linux Kernel
Announcement ID: SUSE-SU-2019:14218-1
Rating: important
References: #1101061 #1113201 #1117665 #1131107 #1143327 #1144903 #1145477 #1145922 #1146163 #1146285 #1146361 #1146391 #1146524 #1146540 #1146547 #1146678 #1147122 #1148938 #1149376 #1149522 #1150025 #1150112 #1150452 #1150457 #1150465 #1150599 #1151347 #1151350 #1152779 #1152782 #1152786 #1152789 #1153158 #1155671 #802154 #936875
Cross-References:CVE-2017-18509 CVE-2017-18551 CVE-2018-12207 CVE-2018-20976 CVE-2019-10220 CVE-2019-11135 CVE-2019-14821 CVE-2019-14835 CVE-2019-15118 CVE-2019-15212 CVE-2019-15216 CVE-2019-15217 CVE-2019-15219 CVE-2019-15291 CVE-2019-15292 CVE-2019-15505 CVE-2019-15807 CVE-2019-15902 CVE-2019-15927 CVE-2019-16232 CVE-2019-16233 CVE-2019-16234 CVE-2019-16413 CVE-2019-17052 CVE-2019-17053 CVE-2019-17054 CVE-2019-17055 CVE-2019-17133 CVE-2019-9456
Affected Products:
  • SUSE Linux Enterprise Server 11-SP4-LTSS
  • SUSE Linux Enterprise Server 11-EXTRA
  • SUSE Linux Enterprise High Availability Extension 11-SP4
  • SUSE Linux Enterprise Debuginfo 11-SP4

An update that solves 29 vulnerabilities and has 7 fixes is now available.

Description:


The SUSE Linux Enterprise 11-SP4 kernel was updated to receive various security and bugfixes.
The following security bugs were fixed:

  • CVE-2019-11135: Aborting an asynchronous TSX operation on Intel CPUs with Transactional Memory support could be used to facilitate sidechannel information leaks out of microarchitectural buffers, similar to the previously described "Microarchitectural Data Sampling" attack.

The Linux kernel was supplemented with the option to disable TSX operation altogether (requiring CPU Microcode updates on older systems) and better flushing of microarchitectural buffers (VERW).
The set of options available is described in our TID at https://www.suse.com/support/kb/doc/?id=7023735
  • CVE-2018-12207: Untrusted virtual machines on Intel CPUs could exploit a race condition in the Instruction Fetch Unit of the Intel CPU to cause a Machine Exception during Page Size Change, causing the CPU core to be non-functional.

The Linux Kernel kvm hypervisor was adjusted to avoid page size changes in executable pages by splitting / merging huge pages into small pages as needed. More information can be found on https://www.suse.com/support/kb/doc/?id=7024251
  • CVE-2019-16233: drivers/scsi/qla2xxx/qla_os.c did not check the alloc_workqueue return value, leading to a NULL pointer dereference. (bsc#1150457).
  • CVE-2019-10220: Added sanity checks on the pathnames passed to the user space. (bsc#1144903).
  • CVE-2019-16234: iwlwifi pcie driver did not check the alloc_workqueue return value, leading to a NULL pointer dereference. (bsc#1150452).
  • CVE-2019-16232: Fix a potential NULL pointer dereference in the Marwell libertas driver (bsc#1150465).
  • CVE-2019-17052: ax25_create in the AF_AX25 network module in the Linux kernel did not enforce CAP_NET_RAW, which meant that unprivileged users could create a raw socket, aka CID-0614e2b73768. (bnc#1152779)
  • CVE-2019-17055: base_sock_create in the AF_ISDN network module in the Linux kernel did not enforce CAP_NET_RAW, which means that unprivileged users can create a raw socket, aka CID-b91ee4aa2a21. (bnc#1152782)
  • CVE-2019-17054: atalk_create in the AF_APPLETALK network module in the Linux kernel did not enforce CAP_NET_RAW, which means that unprivileged users can create a raw socket, aka CID-6cc03e8aa36c. (bnc#1152786)
  • CVE-2019-17133: cfg80211 wireless extension did not reject a long SSID IE, leading to a Buffer Overflow (bsc#1153158).
  • CVE-2019-17053: ieee802154_create in the AF_IEEE802154 network module in the Linux kernel did not enforce CAP_NET_RAW, which means that unprivileged users could create a raw socket, aka CID-e69dbd4619e7. (bnc#1152789)
  • CVE-2019-16413: The 9p filesystem did not protect i_size_write() properly, which caused an i_size_read() infinite loop and denial of service on SMP systems. (bnc#1151347)
  • CVE-2019-15291: There was a NULL pointer dereference caused by a malicious USB device in the flexcop_usb_probe function. (bnc#1146540)
  • CVE-2019-15807: There was a memory leak in the SAS expander driver when SAS expander discovery fails. This could cause a denial of service. (bnc#1148938)
  • CVE-2019-14821: An out-of-bounds access issue was found in the way Linux the kernel's KVM hypervisor implemented the Coalesced MMIO write operation. It operated on an MMIO ring buffer 'struct kvm_coalesced_mmio' object, wherein write indices value could be supplied by a host user-space process. An unprivileged host user or process with access to '/dev/kvm' device could use this flaw to crash the host kernel, resulting in a denial of service or potentially escalating privileges on the system. (bnc#1151350)
  • CVE-2019-15505: The Linux kernel had an out-of-bounds read via crafted USB device traffic (which may have been remote via usbip or usbredir). (bnc#1147122)
  • CVE-2019-14835: A buffer overflow flaw was found in the way Linux kernel's vhost functionality that translates virtqueue buffers to IOVs, logged the buffer descriptors during migration. A privileged guest user able to pass descriptors with invalid length to the host when migration is underway, could have used this flaw to increase their privileges on the host. (bnc#1150112)
  • CVE-2019-15216: There was a NULL pointer dereference caused by a malicious USB device in the drivers/usb/misc/yurex.c driver. (bnc#1146361)
  • CVE-2019-9456: In the Android kernel in Pixel C USB monitor driver there was a possible OOB write due to a missing bounds check. This could lead to local escalation of privilege with System execution privileges needed. User interaction was not needed for exploitation. (bnc#1150025)
  • CVE-2019-15927: An out-of-bounds access existed in the function build_audio_procunit in the file sound/usb/mixer.c. (bnc#1149522)
  • CVE-2019-15902: Misuse of the upstream "x86/ptrace: Fix possible spectre-v1 in ptrace_get_debugreg()" commit reintroduced the Spectre vulnerability that it aimed to eliminate. This occurred because the backport process depends on cherry picking specific commits, and because two (correctly ordered)\ code lines were swapped. (bnc#1149376)
  • CVE-2019-15219: There was a NULL pointer dereference caused by a malicious USB device in the drivers/usb/misc/sisusbvga/sisusb.c driver. (bnc#1146524)
  • CVE-2017-18509: An issue was discovered in net/ipv6/ip6mr.c in the Linux kernel By setting a specific socket option, an attacker could control a pointer in kernel land and cause an inet_csk_listen_stop general protection fault, or potentially execute arbitrary code under certain circumstances. The issue could be triggered as root (e.g., inside a default LXC container or with the CAP_NET_ADMIN capability) or after namespace unsharing. This occurred because sk_type and protocol were not checked in the appropriate part of the ip6_mroute_* functions. (bnc#1145477)
  • CVE-2019-15212: There was a double-free caused by a malicious USB device in the drivers/usb/misc/rio500.c driver. (bnc#1146391)
  • CVE-2019-15292: There was a use-after-free in atalk_proc_exit. (bnc#1146678)
  • CVE-2019-15217: There was a NULL pointer dereference caused by a malicious USB device in the drivers/media/usb/zr364xx/zr364xx.c driver. (bnc#1146547)
  • CVE-2018-20976: A use after free was discovered in fs/xfs/xfs_super.c, related to xfs_fs_fill_super failure. (bnc#1146285)
  • CVE-2017-18551: There was an out of bounds write in the function i2c_smbus_xfer_emulated. (bnc#1146163)
  • CVE-2019-15118: check_input_term in sound/usb/mixer.c mishandled recursion, leading to kernel stack exhaustion. (bnc#1145922)

The following non-security bugs were fixed:
  • add a missing lfence in kernel error entry and remove a superfluous lfence in userspace interrupt exit paths
  • Documentation: Add ITLB_MULTIHIT documentation (bnc#1117665).
  • array_index_nospec: Sanitize speculative array (bsc#1155671)
  • cpu/speculation: Uninline and export CPU mitigations helpers (bnc#1117665).
  • IB/core: Add mitigation for Spectre V1 (bsc#1155671)
  • inet_diag: fix oops for IPv4 AF_INET6 TCP SYN-RECV state (bsc#1101061).
  • kABI Fix for IFU Patches (bsc#1117665).
  • kthread: Implement park/unpark facility (bsc#1117665).
  • kvm: Convert kvm_lock to a mutex (bsc#1117665).
  • kvm: MMU: drop read-only large sptes when creating lower level sptes (bsc#1117665).
  • kvm: MMU: fast invalidate all pages (bsc1117665).
  • kvm: VMX: export PFEC.P bit on ept (bsc#1117665).
  • kvm: vmx, svm: always run with EFER.NXE=1 when shadow paging is active (bsc#1117665).
  • kvm: x86: make FNAME(fetch) and __direct_map more similar (bsc#1117665).
  • kvm: x86: mmu: Apply global mitigations knob to ITLB_MULTIHIT (bnc#1117665).
  • mm/readahead.c: fix readahead failure for memoryless NUMA nodes and limit readahead pages (bsc#1143327).
  • mm: use only per-device readahead limit (bsc#1143327).
  • powerpc/64s: support nospectre_v2 cmdline option (bsc#1131107).
  • powerpc/fsl: Add nospectre_v2 command line argument (bsc#1131107).
  • powerpc/fsl: Update Spectre v2 reporting (bsc#1131107).
  • powerpc/security: Show powerpc_security_features in debugfs (bsc#1131107).
  • xfs: xfs_remove deadlocks due to inverted AGF vs AGI lock ordering (bsc#1150599).

Special Instructions and Notes:

Please reboot the system after installing this update.

Patch Instructions:

To install this SUSE Security 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 Server 11-SP4-LTSS:
    zypper in -t patch slessp4-kernel-source-14218=1
  • SUSE Linux Enterprise Server 11-EXTRA:
    zypper in -t patch slexsp3-kernel-source-14218=1
  • SUSE Linux Enterprise High Availability Extension 11-SP4:
    zypper in -t patch slehasp4-kernel-source-14218=1
  • SUSE Linux Enterprise Debuginfo 11-SP4:
    zypper in -t patch dbgsp4-kernel-source-14218=1

Package List:

  • SUSE Linux Enterprise Server 11-SP4-LTSS (i586 ppc64 s390x x86_64):
    • kernel-default-3.0.101-108.108.1
    • kernel-default-base-3.0.101-108.108.1
    • kernel-default-devel-3.0.101-108.108.1
    • kernel-source-3.0.101-108.108.1
    • kernel-syms-3.0.101-108.108.1
    • kernel-trace-3.0.101-108.108.1
    • kernel-trace-base-3.0.101-108.108.1
    • kernel-trace-devel-3.0.101-108.108.1
  • SUSE Linux Enterprise Server 11-SP4-LTSS (i586 x86_64):
    • kernel-ec2-3.0.101-108.108.1
    • kernel-ec2-base-3.0.101-108.108.1
    • kernel-ec2-devel-3.0.101-108.108.1
    • kernel-xen-3.0.101-108.108.1
    • kernel-xen-base-3.0.101-108.108.1
    • kernel-xen-devel-3.0.101-108.108.1
  • SUSE Linux Enterprise Server 11-SP4-LTSS (ppc64):
    • kernel-bigmem-3.0.101-108.108.1
    • kernel-bigmem-base-3.0.101-108.108.1
    • kernel-bigmem-devel-3.0.101-108.108.1
    • kernel-ppc64-3.0.101-108.108.1
    • kernel-ppc64-base-3.0.101-108.108.1
    • kernel-ppc64-devel-3.0.101-108.108.1
  • SUSE Linux Enterprise Server 11-SP4-LTSS (s390x):
    • kernel-default-man-3.0.101-108.108.1
  • SUSE Linux Enterprise Server 11-SP4-LTSS (i586):
    • kernel-pae-3.0.101-108.108.1
    • kernel-pae-base-3.0.101-108.108.1
    • kernel-pae-devel-3.0.101-108.108.1
  • SUSE Linux Enterprise Server 11-EXTRA (i586 ia64 ppc64 s390x x86_64):
    • kernel-default-extra-3.0.101-108.108.1
  • SUSE Linux Enterprise Server 11-EXTRA (i586 x86_64):
    • kernel-xen-extra-3.0.101-108.108.1
  • SUSE Linux Enterprise Server 11-EXTRA (x86_64):
    • kernel-trace-extra-3.0.101-108.108.1
  • SUSE Linux Enterprise Server 11-EXTRA (ppc64):
    • kernel-ppc64-extra-3.0.101-108.108.1
  • SUSE Linux Enterprise Server 11-EXTRA (i586):
    • kernel-pae-extra-3.0.101-108.108.1
  • SUSE Linux Enterprise High Availability Extension 11-SP4 (i586 ppc64 s390x x86_64):
    • ocfs2-kmp-default-1.6_3.0.101_108.108-0.28.11.2
    • ocfs2-kmp-trace-1.6_3.0.101_108.108-0.28.11.2
  • SUSE Linux Enterprise High Availability Extension 11-SP4 (i586 x86_64):
    • ocfs2-kmp-xen-1.6_3.0.101_108.108-0.28.11.2
  • SUSE Linux Enterprise High Availability Extension 11-SP4 (ppc64):
    • ocfs2-kmp-bigmem-1.6_3.0.101_108.108-0.28.11.2
    • ocfs2-kmp-ppc64-1.6_3.0.101_108.108-0.28.11.2
  • SUSE Linux Enterprise High Availability Extension 11-SP4 (i586):
    • ocfs2-kmp-pae-1.6_3.0.101_108.108-0.28.11.2
  • SUSE Linux Enterprise Debuginfo 11-SP4 (i586 ppc64 s390x x86_64):
    • kernel-default-debuginfo-3.0.101-108.108.1
    • kernel-default-debugsource-3.0.101-108.108.1
    • kernel-trace-debuginfo-3.0.101-108.108.1
    • kernel-trace-debugsource-3.0.101-108.108.1
  • SUSE Linux Enterprise Debuginfo 11-SP4 (i586 s390x x86_64):
    • kernel-default-devel-debuginfo-3.0.101-108.108.1
    • kernel-trace-devel-debuginfo-3.0.101-108.108.1
  • SUSE Linux Enterprise Debuginfo 11-SP4 (i586 x86_64):
    • kernel-ec2-debuginfo-3.0.101-108.108.1
    • kernel-ec2-debugsource-3.0.101-108.108.1
    • kernel-xen-debuginfo-3.0.101-108.108.1
    • kernel-xen-debugsource-3.0.101-108.108.1
    • kernel-xen-devel-debuginfo-3.0.101-108.108.1
  • SUSE Linux Enterprise Debuginfo 11-SP4 (ppc64):
    • kernel-bigmem-debuginfo-3.0.101-108.108.1
    • kernel-bigmem-debugsource-3.0.101-108.108.1
    • kernel-ppc64-debuginfo-3.0.101-108.108.1
    • kernel-ppc64-debugsource-3.0.101-108.108.1
  • SUSE Linux Enterprise Debuginfo 11-SP4 (i586):
    • kernel-pae-debuginfo-3.0.101-108.108.1
    • kernel-pae-debugsource-3.0.101-108.108.1
    • kernel-pae-devel-debuginfo-3.0.101-108.108.1

References: