Security update for the Linux Kernel

Announcement ID: SUSE-SU-2018:0115-1
Rating: important
References:
Cross-References:
CVSS scores:
  • CVE-2017-11600 ( SUSE ): 7.3 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H
  • CVE-2017-11600 ( NVD ): 7.0 CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-11600 ( NVD ): 7.0 CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-13167 ( SUSE ): 4.0 CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L
  • CVE-2017-13167 ( NVD ): 7.8 CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-15115 ( SUSE ): 5.5 CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
  • CVE-2017-15115 ( NVD ): 7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-15115 ( NVD ): 7.8 CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-15868 ( SUSE ): 8.4 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-15868 ( NVD ): 7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-15868 ( NVD ): 7.8 CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-16534 ( SUSE ): 4.6 CVSS:3.0/AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2017-16534 ( NVD ): 6.6 CVSS:3.0/AV:P/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-16538 ( SUSE ): 4.6 CVSS:3.0/AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2017-16538 ( NVD ): 6.6 CVSS:3.0/AV:P/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-17448 ( SUSE ): 5.7 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:L
  • CVE-2017-17448 ( NVD ): 7.8 CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-17449 ( SUSE ): 4.3 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
  • CVE-2017-17449 ( NVD ): 4.7 CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N
  • CVE-2017-17450 ( SUSE ): 4.4 CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
  • CVE-2017-17450 ( NVD ): 7.8 CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-17558 ( SUSE ): 4.6 CVSS:3.0/AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2017-17558 ( NVD ): 6.6 CVSS:3.0/AV:P/AC:L/PR:L/UI:N/S:U/C:H/I:H/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-2017-5753 ( SUSE ): 5.6 CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
  • CVE-2017-5753 ( SUSE ): 7.1 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
  • CVE-2017-5753 ( NVD ): 5.6 CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
  • CVE-2017-5753 ( NVD ): 5.6 CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
  • CVE-2017-5754 ( SUSE ): 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
  • CVE-2017-5754 ( SUSE ): 7.1 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
  • CVE-2017-5754 ( NVD ): 5.6 CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
  • CVE-2017-8824 ( SUSE ): 8.4 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-8824 ( NVD ): 7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
  • CVE-2017-8824 ( NVD ): 7.8 CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected Products:
  • Public Cloud Module 12
  • SUSE Linux Enterprise High Performance Computing 12 SP2
  • SUSE Linux Enterprise High Performance Computing 12 SP3
  • SUSE Linux Enterprise High Performance Computing 12 SP4
  • SUSE Linux Enterprise High Performance Computing 12 SP5
  • SUSE Linux Enterprise Server 12
  • SUSE Linux Enterprise Server 12 LTSS 12
  • SUSE Linux Enterprise Server 12 SP1
  • SUSE Linux Enterprise Server 12 SP2
  • SUSE Linux Enterprise Server 12 SP3
  • SUSE Linux Enterprise Server 12 SP4
  • SUSE Linux Enterprise Server 12 SP5
  • SUSE Linux Enterprise Server for SAP Applications 12
  • SUSE Linux Enterprise Server for SAP Applications 12 SP1
  • SUSE Linux Enterprise Server for SAP Applications 12 SP2
  • SUSE Linux Enterprise Server for SAP Applications 12 SP3
  • SUSE Linux Enterprise Server for SAP Applications 12 SP4
  • SUSE Linux Enterprise Server for SAP Applications 12 SP5

An update that solves 14 vulnerabilities and has one security fix can now be installed.

Description:

The SUSE Linux Enterprise 12 GA LTSS kernel was updated to receive various security and bugfixes.

This update adds mitigations for various side channel attacks against modern CPUs that could disclose content of otherwise unreadable memory (bnc#1068032).

  • CVE-2017-5753 / "SpectreAttack": Local attackers on systems with modern CPUs featuring deep instruction pipelining could use attacker controllable speculative execution over code patterns in the Linux Kernel to leak content from otherwise not readable memory in the same address space, allowing retrieval of passwords, cryptographic keys and other secrets.

This problem is mitigated by adding speculative fencing on affected code paths throughout the Linux kernel.

This issue is addressed for the x86_64, the IBM Power and IBM zSeries architecture.

  • CVE-2017-5715 / "SpectreAttack": Local attackers on systems with modern CPUs featuring branch prediction could use mispredicted branches to speculatively execute code patterns that in turn could be made to leak other non-readable content in the same address space, an attack similar to CVE-2017-5753.

This problem is mitigated by disabling predictive branches, depending on CPU architecture either by firmware updates and/or fixes in the user-kernel privilege boundaries.

This is done with help of Linux Kernel fixes on the Intel/AMD x86_64 and IBM zSeries architectures. On x86_64, this requires also updates of the CPU microcode packages, delivered in seperate updates.

For IBM Power and zSeries the required firmware updates are supplied over regular channels by IBM.

As this feature can have a performance impact, it can be disabled using the "nospec" kernel commandline option.

  • CVE-2017-5754 / "MeltdownAttack": Local attackers on systems with modern CPUs featuring deep instruction pipelining could use code patterns in userspace to speculative executive code that would read otherwise read protected memory, an attack similar to CVE-2017-5753.

This problem is mitigated by unmapping the Linux Kernel from the user address space during user code execution, following a approach called "KAISER". The terms used here are "KAISER" / "Kernel Address Isolation" and "PTI" / "Page Table Isolation".

This update does this on the x86_64 architecture, it is not required on the IBM zSeries architecture.

This feature can be enabled / disabled by the "pti=[on|off|auto]" or "nopti" commandline options.

The following security bugs were fixed:

  • CVE-2017-15868: The bnep_add_connection function in net/bluetooth/bnep/core.c in the Linux kernel did not ensure that an l2cap socket is available, which allowed local users to gain privileges via a crafted application (bnc#1071470).
  • CVE-2017-13167: An elevation of privilege vulnerability in the kernel sound timer. (bnc#1072876).
  • CVE-2017-16538: drivers/media/usb/dvb-usb-v2/lmedm04.c in the Linux kernel allowed local users to cause a denial of service (general protection fault and system crash) or possibly have unspecified other impact via a crafted USB device, related to a missing warm-start check and incorrect attach timing (dm04_lme2510_frontend_attach versus dm04_lme2510_tuner) (bnc#1066569).
  • CVE-2017-17558: The usb_destroy_configuration function in drivers/usb/core/config.c in the USB core subsystem in the Linux kernel did not consider the maximum number of configurations and interfaces before attempting to release resources, which allowed local users to cause a denial of service (out-of-bounds write access) or possibly have unspecified other impact via a crafted USB device (bnc#1072561).
  • CVE-2017-17450: net/netfilter/xt_osf.c in the Linux kernel did not require the CAP_NET_ADMIN capability for add_callback and remove_callback operations, which allowed local users to bypass intended access restrictions because the xt_osf_fingers data structure is shared across all net namespaces (bnc#1071695).
  • CVE-2017-17449: The __netlink_deliver_tap_skb function in net/netlink/af_netlink.c in the Linux kernel through 4.14.4, when CONFIG_NLMON is enabled, did not restrict observations of Netlink messages to a single net namespace, which allowed local users to obtain sensitive information by leveraging the CAP_NET_ADMIN capability to sniff an nlmon interface for all Netlink activity on the system (bnc#1071694).
  • CVE-2017-17448: net/netfilter/nfnetlink_cthelper.c in the Linux kernel did not require the CAP_NET_ADMIN capability for new, get, and del operations, which allowed local users to bypass intended access restrictions because the nfnl_cthelper_list data structure is shared across all net namespaces (bnc#1071693).
  • CVE-2017-8824: The dccp_disconnect function in net/dccp/proto.c in the Linux kernel allowed local users to gain privileges or cause a denial of service (use-after-free) via an AF_UNSPEC connect system call during the DCCP_LISTEN state (bnc#1070771).
  • CVE-2017-15115: The sctp_do_peeloff function in net/sctp/socket.c in the Linux kernel did not check whether the intended netns is used in a peel-off action, which allowed local users to cause a denial of service (use-after-free and system crash) or possibly have unspecified other impact via crafted system calls (bnc#1068671).
  • CVE-2017-11600: net/xfrm/xfrm_policy.c in the Linux kernel through 4.12.3, when CONFIG_XFRM_MIGRATE is enabled, did not ensure that the dir value of xfrm_userpolicy_id is XFRM_POLICY_MAX or less, which allowed local users to cause a denial of service (out-of-bounds access) or possibly have unspecified other impact via an XFRM_MSG_MIGRATE xfrm Netlink message (bnc#1050231).
  • CVE-2017-16534: The cdc_parse_cdc_header function in drivers/usb/core/message.c in the Linux kernel 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#1066693).

The following non-security bugs were fixed:

  • kvm: svm: Do not intercept new speculative control MSRs (bsc#1068032).
  • audit: Fix use after free in audit_remove_watch_rule() (bsc#1045205).
  • bpf: prevent speculative execution in eBPF interpreter (bnc#1068032).
  • carl9170: prevent speculative execution (bnc#1068032).
  • fs: prevent speculative execution (bnc#1068032).
  • kaiser: make kernel_stack user-mapped
  • kvm: x86: Add speculative control CPUID support for guests (bsc#1068032).
  • locking/barriers: introduce new memory barrier gmb() (bnc#1068032).
  • p54: prevent speculative execution (bnc#1068032).
  • powerpc/barrier: add gmb.
  • powerpc: Convert cmp to cmpd in idle enter sequence (bsc#1070781).
  • powerpc/vdso64: Use double word compare on pointers (bsc#1070781). Conflicts: series.conf
  • ptrace: Add a new thread access check (bsc#1068032).
  • s390: introduce CPU alternatives (bsc#1068032).
  • s390/spinlock: add gmb memory barrier.
  • s390/spinlock: add ppa to system call path.
  • uas: Only complain about missing sg if all other checks succeed (bsc#1071074).
  • udf: prevent speculative execution (bnc#1068032).
  • usb: uas: fix bug in handling of alternate settings (bsc#1071074).
  • uvcvideo: prevent speculative execution (bnc#1068032).
  • x86/CPU/AMD: Add speculative control support for AMD (bsc#1068032).
  • x86/CPU/AMD: Make the LFENCE instruction serialized (bsc#1068032).
  • x86/CPU/AMD: Remove now unused definition of MFENCE_RDTSC feature (bsc#1068032).
  • x86/CPU: Check speculation control CPUID bit (bsc#1068032).
  • x86/enter: Add macros to set/clear IBRS and set IBPB (bsc#1068032).
  • x86/entry: Add a function to overwrite the RSB (bsc#1068032).
  • x86/entry: Stuff RSB for entry to kernel for non-SMEP platform (bsc#1068032).
  • x86/entry: Use IBRS on entry to kernel space (bsc#1068032).
  • x86/feature: Enable the x86 feature to control Speculation (bsc#1068032).
  • x86/idle: Disable IBRS when offlining a CPU and re-enable on wakeup (bsc#1068032).
  • x86/idle: Toggle IBRS when going idle (bsc#1068032).
  • x86/kaiser: Move feature detection up (bsc#1068032).
  • x86/kvm: Add MSR_IA32_SPEC_CTRL and MSR_IA32_PRED_CMD to kvm (bsc#1068032).
  • x86/kvm: Flush IBP when switching VMs (bsc#1068032).
  • x86/kvm: Pad RSB on VM transition (bsc#1068032).
  • x86/kvm: Toggle IBRS on VM entry and exit (bsc#1068032).
  • x86/microcode/AMD: Add support for fam17h microcode loading (bsc#1068032).
  • x86/mm: Only set IBPB when the new thread cannot ptrace current thread (bsc#1068032).
  • x86/mm: Set IBPB upon context switch (bsc#1068032).
  • x86/MSR: Move native_*msr(.. u64) to msr.h (bsc#1068032).
  • x86/spec: Add IBRS control functions (bsc#1068032).
  • x86/spec: Add "nospec" chicken bit (bsc#1068032).
  • x86/spec: Check CPUID direclty post microcode reload to support IBPB feature (bsc#1068032).
  • x86/spec_ctrl: Add an Indirect Branch Predictor barrier (bsc#1068032).
  • x86/spec_ctrl: Check whether IBPB is enabled before using it (bsc#1068032).
  • x86/spec_ctrl: Check whether IBRS is enabled before using it (bsc#1068032).
  • x86/svm: Add code to clear registers on VM exit (bsc#1068032).
  • x86/svm: Clobber the RSB on VM exit (bsc#1068032).
  • x86/svm: Set IBPB when running a different VCPU (bsc#1068032).
  • x86/svm: Set IBRS value on VM entry and exit (bsc#1068032).

Special Instructions and Notes:

  • Please reboot the system after installing this update.

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:

  • Public Cloud Module 12
    zypper in -t patch SUSE-SLE-Module-Public-Cloud-12-2018-83=1
  • SUSE Linux Enterprise Server 12 LTSS 12
    zypper in -t patch SUSE-SLE-SERVER-12-2018-83=1

Package List:

  • Public Cloud Module 12 (nosrc x86_64)
    • kernel-ec2-3.12.61-52.111.1
  • Public Cloud Module 12 (x86_64)
    • kernel-ec2-devel-3.12.61-52.111.1
    • kernel-ec2-debuginfo-3.12.61-52.111.1
    • kernel-ec2-debugsource-3.12.61-52.111.1
    • kernel-ec2-extra-3.12.61-52.111.1
    • kernel-ec2-extra-debuginfo-3.12.61-52.111.1
  • SUSE Linux Enterprise Server 12 LTSS 12 (nosrc ppc64le s390x x86_64)
    • kernel-default-3.12.61-52.111.1
  • SUSE Linux Enterprise Server 12 LTSS 12 (ppc64le s390x x86_64)
    • kernel-default-debuginfo-3.12.61-52.111.1
    • kernel-default-base-3.12.61-52.111.1
    • kernel-default-base-debuginfo-3.12.61-52.111.1
    • kernel-default-debugsource-3.12.61-52.111.1
    • kernel-syms-3.12.61-52.111.1
    • kernel-default-devel-3.12.61-52.111.1
  • SUSE Linux Enterprise Server 12 LTSS 12 (noarch)
    • kernel-devel-3.12.61-52.111.1
    • kernel-source-3.12.61-52.111.1
    • kernel-macros-3.12.61-52.111.1
  • SUSE Linux Enterprise Server 12 LTSS 12 (s390x)
    • kernel-default-man-3.12.61-52.111.1
  • SUSE Linux Enterprise Server 12 LTSS 12 (nosrc x86_64)
    • kernel-xen-3.12.61-52.111.1
  • SUSE Linux Enterprise Server 12 LTSS 12 (x86_64)
    • kernel-xen-debuginfo-3.12.61-52.111.1
    • kernel-xen-devel-3.12.61-52.111.1
    • kernel-xen-debugsource-3.12.61-52.111.1
    • kernel-xen-base-3.12.61-52.111.1
    • kernel-xen-base-debuginfo-3.12.61-52.111.1

References: