Security update for the Linux Kernel

SUSE Security Update: Security update for the Linux Kernel
Announcement ID: SUSE-SU-2019:1289-1
Rating: important
References: #1031240 #1034862 #1066674 #1071021 #1086535 #1091171 #1094825 #1100001 #1102517 #1103097 #1104475 #1105025 #1105296 #1106913 #1107829 #1108498 #1110768 #1111331 #1111516 #1113751 #1113769 #1114648 #1114920 #1115007 #1115038 #1116345 #1116841 #1118152 #1118319 #1119714 #1119946 #1120743 #1120758 #1121621 #1122015 #1123161 #1124010 #1124728 #1124732 #1124735 #1126890 #1128166 #1131416 #1131427 #1132828 #1133188
Cross-References: CVE-2016-10741 CVE-2017-1000407 CVE-2017-16533 CVE-2017-7273 CVE-2017-7472 CVE-2018-12126 CVE-2018-12127 CVE-2018-12130 CVE-2018-14633 CVE-2018-15572 CVE-2018-16884 CVE-2018-18281 CVE-2018-18386 CVE-2018-18690 CVE-2018-18710 CVE-2018-19407 CVE-2018-19824 CVE-2018-19985 CVE-2018-20169 CVE-2018-5391 CVE-2018-9516 CVE-2018-9568 CVE-2019-11091 CVE-2019-11486 CVE-2019-3459 CVE-2019-3460 CVE-2019-3882 CVE-2019-6974 CVE-2019-7221 CVE-2019-7222 CVE-2019-8564 CVE-2019-9213 CVE-2019-9503
Affected Products:
  • SUSE Linux Enterprise Server for SAP 12-SP1
  • SUSE Linux Enterprise Server 12-SP1-LTSS
  • SUSE Linux Enterprise Module for Public Cloud 12

An update that solves 33 vulnerabilities and has 13 fixes is now available.

Description:



The SUSE Linux Enterprise 12 SP1 LTSS kernel was updated to receive various security and bugfixes.
Four new speculative execution information leak issues have been identified in Intel CPUs. (bsc#1111331)

  • CVE-2018-12126: Microarchitectural Store Buffer Data Sampling (MSBDS)
  • CVE-2018-12127: Microarchitectural Fill Buffer Data Sampling (MFBDS)
  • CVE-2018-12130: Microarchitectural Load Port Data Samling (MLPDS)
  • CVE-2019-11091: Microarchitectural Data Sampling Uncacheable Memory (MDSUM)

This kernel update contains software mitigations for these issues, which also utilize CPU microcode updates shipped in parallel.
For more information on this set of information leaks, check out https://www.suse.com/support/kb/doc/?id=7023736
The following security bugs were fixed:
  • CVE-2016-10741: fs/xfs/xfs_aops.c allowed local users to cause a denial of service (system crash) because there is a race condition between direct and memory-mapped I/O (associated with a hole) that is handled with BUG_ON instead of an I/O failure (bnc#1114920 bnc#1124010).
  • CVE-2017-1000407: By flooding the diagnostic port 0x80 an exception can be triggered leading to a kernel panic (bnc#1071021).
  • CVE-2017-16533: The usbhid_parse function in drivers/hid/usbhid/hid-core.c allowed local users to cause a denial of service (out-of-bounds read and system crash) or possibly have unspecified other impact via a crafted USB device (bnc#1066674).
  • CVE-2017-7273: The cp_report_fixup function in drivers/hid/hid-cypress.c allowed physically proximate attackers to cause a denial of service (integer underflow) or possibly have unspecified other impact via a crafted HID report (bnc#1031240).
  • CVE-2017-7472: The KEYS subsystem allowed local users to cause a denial of service (memory consumption) via a series of KEY_REQKEY_DEFL_THREAD_KEYRING keyctl_set_reqkey_keyring calls (bnc#1034862).
  • CVE-2018-14633: A security flaw was found in the chap_server_compute_md5() function in the ISCSI target code in the Linux kernel in a way an authentication request from an ISCSI initiator is processed. An unauthenticated remote attacker can cause a stack buffer overflow and smash up to 17 bytes of the stack. The attack requires the iSCSI target to be enabled on the victim host. Depending on how the target's code was built (i.e. depending on a compiler, compile flags and hardware architecture) an attack may lead to a system crash and thus to a denial-of-service or possibly to a non-authorized access to data exported by an iSCSI target. (bnc#1107829).
  • CVE-2018-15572: The spectre_v2_select_mitigation function in arch/x86/kernel/cpu/bugs.c did not always fill RSB upon a context switch, which made it easier for attackers to conduct userspace-userspace spectreRSB attacks (bnc#1102517 bnc#1105296).
  • CVE-2018-16884: NFS41+ shares mounted in different network namespaces at the same time can make bc_svc_process() use wrong back-channel IDs and cause a use-after-free vulnerability. Thus a malicious container user can cause a host kernel memory corruption and a system panic. Due to the nature of the flaw, privilege escalation cannot be fully ruled out (bnc#1119946).
  • CVE-2018-18281: The mremap() syscall performed TLB flushes after dropping pagetable locks. If a syscall such as ftruncate() removes entries from the pagetables of a task that is in the middle of mremap(), a stale TLB entry can remain for a short time that permits access to a physical page after it has been released back to the page allocator and reused. (bnc#1113769).
  • CVE-2018-18386: drivers/tty/n_tty.c allowed local attackers (who are able to access pseudo terminals) to hang/block further usage of any pseudo terminal devices due to an EXTPROC versus ICANON confusion in TIOCINQ (bnc#1094825).
  • CVE-2018-18690: A local attacker able to set attributes on an xfs filesystem could make this filesystem non-operational until the next mount by triggering an unchecked error condition during an xfs attribute change, because xfs_attr_shortform_addname in fs/xfs/libxfs/xfs_attr.c mishandled ATTR_REPLACE operations with conversion of an attr from short to long form (bnc#1105025).
  • CVE-2018-18710: An information leak in cdrom_ioctl_select_disc in drivers/cdrom/cdrom.c could be used by local attackers to read kernel memory because a cast from unsigned long to int interferes with bounds checking. This is similar to CVE-2018-10940 and CVE-2018-16658 (bnc#1113751).
  • CVE-2018-19407: The vcpu_scan_ioapic function in arch/x86/kvm/x86.c allowed local users to cause a denial of service (NULL pointer dereference and BUG) via crafted system calls that reach a situation where ioapic is uninitialized (bnc#1116841).
  • CVE-2018-19824: A local user could exploit a use-after-free in the ALSA driver by supplying a malicious USB Sound device (with zero interfaces) that is mishandled in usb_audio_probe in sound/usb/card.c (bnc#1118152).
  • CVE-2018-19985: The function hso_get_config_data in drivers/net/usb/hso.c read if_num from the USB device (as a u8) and uses it to index a small array, resulting in an object out-of-bounds (OOB) read that potentially allowed arbitrary read in the kernel address space (bnc#1120743).
  • CVE-2018-20169: The USB subsystem mishandled size checks during the reading of an extra descriptor, related to __usb_get_extra_descriptor in drivers/usb/core/usb.c (bnc#1119714).
  • CVE-2018-5391: The Linux kernel was vulnerable to a denial of service attack with low rates of specially modified packets targeting IP fragment re-assembly. An attacker may cause a denial of service condition by sending specially crafted IP fragments. Various vulnerabilities in IP fragmentation have been discovered and fixed over the years. The current vulnerability (CVE-2018-5391) became exploitable in the Linux kernel with the increase of the IP fragment reassembly queue size (bnc#1103097).
  • CVE-2018-9516: In hid_debug_events_read of drivers/hid/hid-debug.c, there is a possible out of bounds write due to a missing bounds check. This could lead to local escalation of privilege with System execution privileges needed. User interaction is not needed for exploitation. (bnc#1108498).
  • CVE-2018-9568: In sk_clone_lock of sock.c, there is a possible memory corruption due to type confusion. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation. (bnc#1118319).
  • CVE-2019-11486: The Siemens R3964 line discipline driver in drivers/tty/n_r3964.c had multiple race conditions (bnc#1133188). The line discipline was disabled.
  • CVE-2019-3459: A heap address information leak while using L2CAP_GET_CONF_OPT was discovered (bnc#1120758).
  • CVE-2019-3460: A heap data infoleak in multiple locations including L2CAP_PARSE_CONF_RSP was found (bnc#1120758).
  • CVE-2019-3882: A flaw was found vfio interface implementation that permitted violation of the user's locked memory limit. If a device is bound to a vfio driver, such as vfio-pci, and the local attacker is administratively granted ownership of the device, it may cause a system memory exhaustion and thus a denial of service (DoS). (bnc#1131416 bnc#1131427).
  • CVE-2019-6974: kvm_ioctl_create_device in virt/kvm/kvm_main.c mishandled reference counting because of a race condition, leading to a use-after-free (bnc#1124728).
  • CVE-2019-7221: The KVM implementation had a Use-after-Free (bnc#1124732).
  • CVE-2019-7222: The KVM implementation had an Information Leak (bnc#1124735).
  • CVE-2019-9213: expand_downwards in mm/mmap.c lacked a check for the mmap minimum address, which made it easier for attackers to exploit kernel NULL pointer dereferences on non-SMAP platforms. This is related to a capability check for the wrong task (bnc#1128166).
  • CVE-2019-9503: Multiple brcmfmac frame validation bypasses have been fixed (bnc#1132828).

The following non-security bugs were fixed:
  • cifs: Check for timeout on Negotiate stage (bsc#1091171 bsc#1126890).
  • fix pgd underflow (bnc#1104475) (bsc#1104475, bsc#1110768).
  • kvm: x86: Report STIBP on GET_SUPPORTED_CPUID (bsc#1111331).
  • locking/atomics, asm-generic: Move some macros from to a new file (bsc#1111331).
  • net: ipv4: do not handle duplicate fragments as overlapping (bsc#1116345).
  • sched/core: Optimize SCHED_SMT (bsc#1111331)
  • sched/smt: Expose sched_smt_present static key (bsc#1106913).
  • sched/smt: Make sched_smt_present track topology (bsc#1106913).
  • sched/smt: Update sched_smt_present at runtime (bsc#1111331)
  • tcp: prevent bogus FRTO undos with non-SACK flows (bsc#1086535).
  • x86/bugs: Rename SSBD_NO to SSB_NO (bsc#1111331)
  • x86/cpu: Sanitize FAM6_ATOM naming (bsc#1111331).
  • x86/kvm: Expose X86_FEATURE_MD_CLEAR to guests (bsc#1111331).
  • x86/kvm/vmx: Add MDS protection when L1D Flush is not active (bsc#1111331).
  • x86/mce: Improve error message when kernel cannot recover, p2 (bsc#1114648).
  • x86/msr-index: Cleanup bit defines (bsc#1111331).
  • x86/spec_ctrl: Fix spec_ctrl reporting (bsc#1106913, bsc#1111516).
  • x86/speculation: Apply IBPB more strictly to avoid cross-process data leak (bsc#1106913).
  • x86/speculation: Consolidate CPU whitelists (bsc#1111331).
  • x86/speculation: Enable cross-hyperthread spectre v2 STIBP mitigation (bsc#1106913).
  • x86/speculation/mds: Add basic bug infrastructure for MDS (bsc#1111331).
  • x86/speculation/mds: Add BUG_MSBDS_ONLY (bsc#1111331).
  • x86/speculation/mds: Add mds_clear_cpu_buffers() (bsc#1111331).
  • x86/speculation/mds: Add mitigation control for MDS (bsc#1111331).
  • x86/speculation/mds: Add mitigation mode VMWERV (bsc#1111331).
  • x86/speculation/mds: Add sysfs reporting for MDS (bsc#1111331).
  • x86/speculation/mds: Clear CPU buffers on exit to user (bsc#1111331).
  • x86/speculation/mds: Conditionally clear CPU buffers on idle entry (bsc#1111331).
  • x86/speculation: Remove redundant arch_smt_update() invocation (bsc#1111331).
  • x86/speculation: Rework SMT state change (bsc#1111331).
  • x86/speculation: Simplify the CPU bug detection logic (bsc#1111331).
  • x86/uaccess: Do not leak the AC flag into __put_user() value evaluation (bsc#1114648).
  • xfs: do not BUG() on mixed direct and mapped I/O (bsc#1114920).
  • xfs: fix quotacheck dquot id overflow infinite loop (bsc#1121621).
  • xfs: stop searching for free slots in an inode chunk when there are none (bsc#1115007).
  • xfs: xfs_iget_check_free_state: Use correct sign for errors (bsc#1122015, bsc#1100001).
  • xfs: validate sb_logsunit is a multiple of the fs blocksize (bsc#1115038).

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 for SAP 12-SP1:
    zypper in -t patch SUSE-SLE-SAP-12-SP1-2019-1289=1
  • SUSE Linux Enterprise Server 12-SP1-LTSS:
    zypper in -t patch SUSE-SLE-SERVER-12-SP1-2019-1289=1
  • SUSE Linux Enterprise Module for Public Cloud 12:
    zypper in -t patch SUSE-SLE-Module-Public-Cloud-12-2019-1289=1

Package List:

  • SUSE Linux Enterprise Server for SAP 12-SP1 (noarch):
    • kernel-devel-3.12.74-60.64.110.1
    • kernel-macros-3.12.74-60.64.110.1
    • kernel-source-3.12.74-60.64.110.1
  • SUSE Linux Enterprise Server for SAP 12-SP1 (x86_64):
    • kernel-default-3.12.74-60.64.110.1
    • kernel-default-base-3.12.74-60.64.110.1
    • kernel-default-base-debuginfo-3.12.74-60.64.110.1
    • kernel-default-debuginfo-3.12.74-60.64.110.1
    • kernel-default-debugsource-3.12.74-60.64.110.1
    • kernel-default-devel-3.12.74-60.64.110.1
    • kernel-syms-3.12.74-60.64.110.1
    • kernel-xen-3.12.74-60.64.110.1
    • kernel-xen-base-3.12.74-60.64.110.1
    • kernel-xen-base-debuginfo-3.12.74-60.64.110.1
    • kernel-xen-debuginfo-3.12.74-60.64.110.1
    • kernel-xen-debugsource-3.12.74-60.64.110.1
    • kernel-xen-devel-3.12.74-60.64.110.1
    • lttng-modules-2.7.0-4.4.1
    • lttng-modules-debugsource-2.7.0-4.4.1
    • lttng-modules-kmp-default-2.7.0_k3.12.74_60.64.110-4.4.1
    • lttng-modules-kmp-default-debuginfo-2.7.0_k3.12.74_60.64.110-4.4.1
  • SUSE Linux Enterprise Server 12-SP1-LTSS (ppc64le s390x x86_64):
    • kernel-default-3.12.74-60.64.110.1
    • kernel-default-base-3.12.74-60.64.110.1
    • kernel-default-base-debuginfo-3.12.74-60.64.110.1
    • kernel-default-debuginfo-3.12.74-60.64.110.1
    • kernel-default-debugsource-3.12.74-60.64.110.1
    • kernel-default-devel-3.12.74-60.64.110.1
    • kernel-syms-3.12.74-60.64.110.1
  • SUSE Linux Enterprise Server 12-SP1-LTSS (x86_64):
    • kernel-xen-3.12.74-60.64.110.1
    • kernel-xen-base-3.12.74-60.64.110.1
    • kernel-xen-base-debuginfo-3.12.74-60.64.110.1
    • kernel-xen-debuginfo-3.12.74-60.64.110.1
    • kernel-xen-debugsource-3.12.74-60.64.110.1
    • kernel-xen-devel-3.12.74-60.64.110.1
    • lttng-modules-2.7.0-4.4.1
    • lttng-modules-debugsource-2.7.0-4.4.1
    • lttng-modules-kmp-default-2.7.0_k3.12.74_60.64.110-4.4.1
    • lttng-modules-kmp-default-debuginfo-2.7.0_k3.12.74_60.64.110-4.4.1
  • SUSE Linux Enterprise Server 12-SP1-LTSS (noarch):
    • kernel-devel-3.12.74-60.64.110.1
    • kernel-macros-3.12.74-60.64.110.1
    • kernel-source-3.12.74-60.64.110.1
  • SUSE Linux Enterprise Server 12-SP1-LTSS (s390x):
    • kernel-default-man-3.12.74-60.64.110.1
  • SUSE Linux Enterprise Module for Public Cloud 12 (x86_64):
    • kernel-ec2-3.12.74-60.64.110.1
    • kernel-ec2-debuginfo-3.12.74-60.64.110.1
    • kernel-ec2-debugsource-3.12.74-60.64.110.1
    • kernel-ec2-devel-3.12.74-60.64.110.1
    • kernel-ec2-extra-3.12.74-60.64.110.1
    • kernel-ec2-extra-debuginfo-3.12.74-60.64.110.1

References: