Security update for the Linux Kernel

SUSE Security Update: Security update for the Linux Kernel
Announcement ID: SUSE-SU-2018:0031-1
Rating: important
References: #1012422 #1045205 #1050231 #1066569 #1066693 #1067678 #1068032 #1068671 #1070771 #1070781 #1071074 #1071470 #1071693 #1071694 #1071695 #1072561 #1072876
Affected Products:
  • SUSE OpenStack Cloud 6
  • 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 14 vulnerabilities and has three fixes is now available.

    Description:



    The SUSE Linux Enterprise 12 SP1 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, 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:

    - alsa: timer: Fix ioctl_lock mutex deadlock (bsc#1067678).
    - 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
    - kernel-binary.spec: Propagate MAKE_ARGS to %build (bsc#1012422)
    - kvm: SVM: Do not intercept new speculative control MSRs (bsc#1068032).
    - 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/powernv: Remove OPAL v1 takeover (bsc#1070781).
    - powerpc/vdso64: Use double word compare on pointers (bsc#1070781).
    - 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).

    Patch Instructions:

    To install this SUSE Security Update use YaST online_update.
    Alternatively you can run the command listed for your product:

    • SUSE OpenStack Cloud 6:
      zypper in -t patch SUSE-OpenStack-Cloud-6-2018-24=1
    • SUSE Linux Enterprise Server for SAP 12-SP1:
      zypper in -t patch SUSE-SLE-SAP-12-SP1-2018-24=1
    • SUSE Linux Enterprise Server 12-SP1-LTSS:
      zypper in -t patch SUSE-SLE-SERVER-12-SP1-2018-24=1
    • SUSE Linux Enterprise Module for Public Cloud 12:
      zypper in -t patch SUSE-SLE-Module-Public-Cloud-12-2018-24=1

    To bring your system up-to-date, use "zypper patch".

    Package List:

    • SUSE OpenStack Cloud 6 (x86_64):
      • kernel-default-3.12.74-60.64.69.1
      • kernel-default-base-3.12.74-60.64.69.1
      • kernel-default-base-debuginfo-3.12.74-60.64.69.1
      • kernel-default-debuginfo-3.12.74-60.64.69.1
      • kernel-default-debugsource-3.12.74-60.64.69.1
      • kernel-default-devel-3.12.74-60.64.69.1
      • kernel-syms-3.12.74-60.64.69.1
      • kernel-xen-3.12.74-60.64.69.1
      • kernel-xen-base-3.12.74-60.64.69.1
      • kernel-xen-base-debuginfo-3.12.74-60.64.69.1
      • kernel-xen-debuginfo-3.12.74-60.64.69.1
      • kernel-xen-debugsource-3.12.74-60.64.69.1
      • kernel-xen-devel-3.12.74-60.64.69.1
      • kgraft-patch-3_12_74-60_64_69-default-1-2.3.1
      • kgraft-patch-3_12_74-60_64_69-xen-1-2.3.1
    • SUSE OpenStack Cloud 6 (noarch):
      • kernel-devel-3.12.74-60.64.69.1
      • kernel-macros-3.12.74-60.64.69.1
      • kernel-source-3.12.74-60.64.69.1
    • SUSE Linux Enterprise Server for SAP 12-SP1 (ppc64le x86_64):
      • kernel-default-3.12.74-60.64.69.1
      • kernel-default-base-3.12.74-60.64.69.1
      • kernel-default-base-debuginfo-3.12.74-60.64.69.1
      • kernel-default-debuginfo-3.12.74-60.64.69.1
      • kernel-default-debugsource-3.12.74-60.64.69.1
      • kernel-default-devel-3.12.74-60.64.69.1
      • kernel-syms-3.12.74-60.64.69.1
    • SUSE Linux Enterprise Server for SAP 12-SP1 (x86_64):
      • kernel-xen-3.12.74-60.64.69.1
      • kernel-xen-base-3.12.74-60.64.69.1
      • kernel-xen-base-debuginfo-3.12.74-60.64.69.1
      • kernel-xen-debuginfo-3.12.74-60.64.69.1
      • kernel-xen-debugsource-3.12.74-60.64.69.1
      • kernel-xen-devel-3.12.74-60.64.69.1
      • kgraft-patch-3_12_74-60_64_69-default-1-2.3.1
      • kgraft-patch-3_12_74-60_64_69-xen-1-2.3.1
    • SUSE Linux Enterprise Server for SAP 12-SP1 (noarch):
      • kernel-devel-3.12.74-60.64.69.1
      • kernel-macros-3.12.74-60.64.69.1
      • kernel-source-3.12.74-60.64.69.1
    • SUSE Linux Enterprise Server 12-SP1-LTSS (ppc64le s390x x86_64):
      • kernel-default-3.12.74-60.64.69.1
      • kernel-default-base-3.12.74-60.64.69.1
      • kernel-default-base-debuginfo-3.12.74-60.64.69.1
      • kernel-default-debuginfo-3.12.74-60.64.69.1
      • kernel-default-debugsource-3.12.74-60.64.69.1
      • kernel-default-devel-3.12.74-60.64.69.1
      • kernel-syms-3.12.74-60.64.69.1
    • SUSE Linux Enterprise Server 12-SP1-LTSS (noarch):
      • kernel-devel-3.12.74-60.64.69.1
      • kernel-macros-3.12.74-60.64.69.1
      • kernel-source-3.12.74-60.64.69.1
    • SUSE Linux Enterprise Server 12-SP1-LTSS (x86_64):
      • kernel-xen-3.12.74-60.64.69.1
      • kernel-xen-base-3.12.74-60.64.69.1
      • kernel-xen-base-debuginfo-3.12.74-60.64.69.1
      • kernel-xen-debuginfo-3.12.74-60.64.69.1
      • kernel-xen-debugsource-3.12.74-60.64.69.1
      • kernel-xen-devel-3.12.74-60.64.69.1
      • kgraft-patch-3_12_74-60_64_69-default-1-2.3.1
      • kgraft-patch-3_12_74-60_64_69-xen-1-2.3.1
    • SUSE Linux Enterprise Server 12-SP1-LTSS (s390x):
      • kernel-default-man-3.12.74-60.64.69.1
    • SUSE Linux Enterprise Module for Public Cloud 12 (x86_64):
      • kernel-ec2-3.12.74-60.64.69.1
      • kernel-ec2-debuginfo-3.12.74-60.64.69.1
      • kernel-ec2-debugsource-3.12.74-60.64.69.1
      • kernel-ec2-devel-3.12.74-60.64.69.1
      • kernel-ec2-extra-3.12.74-60.64.69.1
      • kernel-ec2-extra-debuginfo-3.12.74-60.64.69.1

    References: