SUSE-SU-2018:0010-1: important: Security update for the Linux Kernel

sle-security-updates at lists.suse.com sle-security-updates at lists.suse.com
Thu Jan 4 04:09:27 MST 2018


   SUSE Security Update: Security update for the Linux Kernel
______________________________________________________________________________

Announcement ID:    SUSE-SU-2018:0010-1
Rating:             important
References:         #1005778 #1005780 #1005781 #1012382 #1017967 
                    #1039616 #1047487 #1063043 #1064311 #1065180 
                    #1068032 #1068951 #1070116 #1071009 #1072166 
                    #1072216 #1072556 #1072866 #1072890 #1072962 
                    #1073090 #1073525 #1073792 #1073809 #1073868 
                    #1073874 #1073912 #963897 #964063 #966170 
                    #966172 
Cross-References:   CVE-2017-17805 CVE-2017-17806 CVE-2017-5715
                    CVE-2017-5753 CVE-2017-5754
Affected Products:
                    SUSE Linux Enterprise Workstation Extension 12-SP3
                    SUSE Linux Enterprise Software Development Kit 12-SP3
                    SUSE Linux Enterprise Server 12-SP3
                    SUSE Linux Enterprise Live Patching 12-SP3
                    SUSE Linux Enterprise High Availability 12-SP3
                    SUSE Linux Enterprise Desktop 12-SP3
                    SUSE Container as a Service Platform ALL
______________________________________________________________________________

   An update that solves 5 vulnerabilities and has 26 fixes is
   now available.

Description:



   The SUSE Linux Enterprise 12 SP3 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.


   - 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.

     Please also check with your CPU / Hardware vendor for available firmware
   or BIOS updates.

     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.

     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 is only enabled by default on affected architectures.

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


   The following security bugs were fixed:

   - CVE-2017-17806: The HMAC implementation (crypto/hmac.c) in the Linux
     kernel did not validate that the underlying cryptographic hash algorithm
     is unkeyed, allowing a local attacker able to use the AF_ALG-based hash
     interface (CONFIG_CRYPTO_USER_API_HASH) and the SHA-3 hash algorithm
     (CONFIG_CRYPTO_SHA3) to cause a kernel stack buffer overflow by
     executing a crafted sequence of system calls that encounter a missing
     SHA-3 initialization (bnc#1073874).
   - CVE-2017-17805: The Salsa20 encryption algorithm in the Linux kernel did
     not correctly handle zero-length inputs, allowing a local attacker able
     to use the AF_ALG-based skcipher interface
     (CONFIG_CRYPTO_USER_API_SKCIPHER) to cause a denial of service
     (uninitialized-memory free and kernel crash) or have unspecified other
     impact by executing a crafted sequence
     of system calls that use the blkcipher_walk API. Both the generic
      implementation (crypto/salsa20_generic.c) and x86 implementation
      (arch/x86/crypto/salsa20_glue.c) of Salsa20 were vulnerable
      (bnc#1073792).


   The following non-security bugs were fixed:

   - Add undefine _unique_build_ids (bsc#964063)
   - apei / ERST: Fix missing error handling in erst_reader() (bsc#1072556).
   - arm: Hide finish_arch_post_lock_switch() from modules (bsc#1068032).
   - autofs: fix careless error in recent commit (bnc#1012382 bsc#1065180).
   - bnxt_en: Do not print "Link speed -1 no longer supported" messages
     (bsc#1070116).
   - bpf: prevent speculative execution in eBPF interpreter (bnc#1068032).
   - carl9170: prevent speculative execution (bnc#1068032).
   - ceph: drop negative child dentries before try pruning inode's alias
     (bsc#1073525).
   - Check cmdline_find_option() retval properly and use boot_cpu_has().
   - cifs: Fix NULL pointer deref on SMB2_tcon() failure (bsc#1071009).
   - cw1200: prevent speculative execution (bnc#1068032).
   - e1000e: Fix e1000_check_for_copper_link_ich8lan return value
     (bsc#1073809).
   - Fix unsed variable warning in has_unmovable_pages (bsc#1073868).
   - fs: prevent speculative execution (bnc#1068032).
   - genwqe: Take R/W permissions into account when dealing with memory pages
     (bsc#1073090).
   - ibmvnic: Include header descriptor support for ARP packets (bsc#1073912).
   - ibmvnic: Increase maximum number of RX/TX queues (bsc#1073912).
   - ibmvnic: Rename IBMVNIC_MAX_TX_QUEUES to IBMVNIC_MAX_QUEUES
     (bsc#1073912).
   - ipv6: prevent speculative execution (bnc#1068032).
   - iw_cxgb4: fix misuse of integer variable (bsc#963897,FATE#320114).
   - iw_cxgb4: only insert drain cqes if wq is flushed (bsc#321658
     FATE#1005778 bsc#321660 FATE#1005780 bsc#321661 FATE#1005781).
   - kaiser: add "nokaiser" boot option, using ALTERNATIVE.
   - kaiser: align addition to x86/mm/Makefile.
   - kaiser: asm/tlbflush.h handle noPGE at lower level.
   - kaiser: cleanups while trying for gold link.
   - kaiser: disabled on Xen PV.
   - kaiser: do not set _PAGE_NX on pgd_none.
   - kaiser: drop is_atomic arg to kaiser_pagetable_walk().
   - kaiser: enhanced by kernel and user PCIDs.
   - kaiser: ENOMEM if kaiser_pagetable_walk() NULL.
   - kaiser: fix build and FIXME in alloc_ldt_struct().
   - kaiser: fix perf crashes.
   - kaiser: fix regs to do_nmi() ifndef CONFIG_KAISER.
   - kaiser: fix unlikely error in alloc_ldt_struct().
   - kaiser: KAISER depends on SMP.
   - kaiser: kaiser_flush_tlb_on_return_to_user() check PCID.
   - kaiser: kaiser_remove_mapping() move along the pgd.
   - kaiser: Kernel Address Isolation.
   - kaiser: load_new_mm_cr3() let SWITCH_USER_CR3 flush.
   - kaiser: load_new_mm_cr3() let SWITCH_USER_CR3 flush user.
   - kaiser: name that 0x1000 KAISER_SHADOW_PGD_OFFSET.
   - kaiser: paranoid_entry pass cr3 need to paranoid_exit.
   - kaiser: PCID 0 for kernel and 128 for user.
   - kaiser: _pgd_alloc() without __GFP_REPEAT to avoid stalls.
   - kaiser: stack map PAGE_SIZE at THREAD_SIZE-PAGE_SIZE.
   - kaiser: tidied up asm/kaiser.h somewhat.
   - kaiser: tidied up kaiser_add/remove_mapping slightly.
   - kaiser: use ALTERNATIVE instead of x86_cr3_pcid_noflush.
   - kaiser: vmstat show NR_KAISERTABLE as nr_overhead.
   - kaiser: x86_cr3_pcid_noflush and x86_cr3_pcid_user.
   - 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).
   - mm/mmu_context, sched/core: Fix mmu_context.h assumption (bsc#1068032).
   - net/mlx5e: DCBNL, Implement tc with ets type and zero bandwidth
     (bsc#966170 FATE#320225 bsc#966172 FATE#320226).
   - net: mpls: prevent speculative execution (bnc#1068032).
   - nfs: revalidate "." etc correctly on "open" (bsc#1068951).
   - nfs: revalidate "." etc correctly on "open" (git-fixes). Fix References:
     tag.
   - nfsv4: always set NFS_LOCK_LOST when a lock is lost (bsc#1068951).
   - nvme-fabrics: introduce init command check for a queue that is not alive
     (bsc#1072890).
   - nvme-fc: check if queue is ready in queue_rq (bsc#1072890).
   - nvme-fc: do not use bit masks for set/test_bit() numbers (bsc#1072890).
   - nvme-loop: check if queue is ready in queue_rq (bsc#1072890).
   - nvmet-fc: cleanup nvmet add_port/remove_port (bsc#1072890).
   - nvmet_fc: correct broken add_port (bsc#1072890).
   - p54: prevent speculative execution (bnc#1068032).
   - powerpc/barrier: add gmb.
   - powerpc: Secure memory rfi flush (bsc#1068032).
   - ptrace: Add a new thread access check (bsc#1068032).
   - qla2xxx: prevent speculative execution (bnc#1068032).
   - s390: add ppa to system call and program check path (bsc#1068032).
   - s390: introduce CPU alternatives (bsc#1068032).
   - s390/qeth: add missing hash table initializations (bnc#1072216,
     LTC#162173).
   - s390/qeth: fix early exit from error path (bnc#1072216, LTC#162173).
   - s390/qeth: fix thinko in IPv4 multicast address tracking (bnc#1072216,
     LTC#162173).
   - s390/spinlock: add gmb memory barrier (bsc#1068032).
   - sched/core: Add switch_mm_irqs_off() and use it in the scheduler
     (bsc#1068032).
   - sched/core: Idle_task_exit() shouldn't use switch_mm_irqs_off()
     (bsc#1068032).
   - scsi_dh_alua: skip RTPG for devices only supporting active/optimized
     (bsc#1064311).
   - scsi: lpfc: correct sg_seg_cnt attribute min vs default (bsc#1072166).
   - scsi: qedi: Limit number for CQ queues (bsc#1072866).
   - scsi_scan: Exit loop if TUR to LUN0 fails with 0x05/0x25 (bsc#1063043).
     This is specific to FUJITSU ETERNUS_DX* targets. They can return
     "Illegal Request - Logical unit not supported" and processing should
     leave the timeout loop in this case.
   - scsi: ses: check return code from ses_recv_diag() (bsc#1039616).
   - scsi: ses: Fixup error message 'failed to get diagnostic page
     0xffffffea' (bsc#1039616).
   - scsi: ses: Fix wrong page error (bsc#1039616).
   - scsi: ses: make page2 support optional (bsc#1039616).
   - sfc: pass valid pointers from efx_enqueue_unwind (bsc#1017967
     FATE#321663).
   - thermal/int340x: prevent speculative execution (bnc#1068032).
   - udf: prevent speculative execution (bnc#1068032).
   - Update config files: enable KAISER.
   - usb: host: fix incorrect updating of offset (bsc#1047487).
   - userns: prevent speculative execution (bnc#1068032).
   - uvcvideo: prevent speculative execution (bnc#1068032).
   - vxlan: correctly handle ipv6.disable module parameter (bsc#1072962).
   - x86/boot: Add early cmdline parsing for options with arguments.
   - 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: Check boottime cmdline params.
   - x86/kaiser: Move feature detection up (bsc#1068032).
   - x86/kaiser: Reenable PARAVIRT.
   - x86/kaiser: Rename and simplify X86_FEATURE_KAISER handling.
   - x86/kvm: add MSR_IA32_SPEC_CTRL and MSR_IA32_PRED_CMD to kvm
     (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/mm/64: Fix reboot interaction with CR4.PCIDE (bsc#1068032).
   - x86/mm: Add a 'noinvpcid' boot option to turn off INVPCID (bsc#1068032).
   - x86/mm: Add INVPCID helpers (bsc#1068032).
   - x86/mm: Add the 'nopcid' boot option to turn off PCID (bsc#1068032).
   - x86/mm: Build arch/x86/mm/tlb.c even on !SMP (bsc#1068032).
   - x86/mm: Enable CR4.PCIDE on supported systems (bsc#1068032).
   - x86/mm: Fix INVPCID asm constraint (bsc#1068032).
   - x86/mm: If INVPCID is available, use it to flush global mappings
     (bsc#1068032).
   - x86/mm: Make flush_tlb_mm_range() more predictable (bsc#1068032).
   - x86/mm: Only set IBPB when the new thread cannot ptrace current thread
     (bsc#1068032).
   - x86/mm: Reimplement flush_tlb_page() using flush_tlb_mm_range()
     (bsc#1068032).
   - x86/mm: Remove flush_tlb() and flush_tlb_current_task() (bsc#1068032).
   - x86/mm: Remove the UP asm/tlbflush.h code, always use the (formerly) SMP
     code (bsc#1068032).
   - x86/mm, sched/core: Turn off IRQs in switch_mm() (bsc#1068032).
   - x86/mm, sched/core: Uninline switch_mm() (bsc#1068032).
   - x86/mm: Set IBPB upon context switch (bsc#1068032).
   - x86/MSR: Move native_*msr(.. u64) to msr.h (bsc#1068032).
   - x86/paravirt: Dont patch flush_tlb_single (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 Linux Enterprise Workstation Extension 12-SP3:

      zypper in -t patch SUSE-SLE-WE-12-SP3-2018-12=1

   - SUSE Linux Enterprise Software Development Kit 12-SP3:

      zypper in -t patch SUSE-SLE-SDK-12-SP3-2018-12=1

   - SUSE Linux Enterprise Server 12-SP3:

      zypper in -t patch SUSE-SLE-SERVER-12-SP3-2018-12=1

   - SUSE Linux Enterprise Live Patching 12-SP3:

      zypper in -t patch SUSE-SLE-Live-Patching-12-SP3-2018-12=1

   - SUSE Linux Enterprise High Availability 12-SP3:

      zypper in -t patch SUSE-SLE-HA-12-SP3-2018-12=1

   - SUSE Linux Enterprise Desktop 12-SP3:

      zypper in -t patch SUSE-SLE-DESKTOP-12-SP3-2018-12=1

   - SUSE Container as a Service Platform ALL:

      zypper in -t patch SUSE-CAASP-ALL-2018-12=1

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


Package List:

   - SUSE Linux Enterprise Workstation Extension 12-SP3 (x86_64):

      kernel-default-debuginfo-4.4.103-6.38.1
      kernel-default-debugsource-4.4.103-6.38.1
      kernel-default-extra-4.4.103-6.38.1
      kernel-default-extra-debuginfo-4.4.103-6.38.1

   - SUSE Linux Enterprise Software Development Kit 12-SP3 (aarch64 ppc64le s390x x86_64):

      kernel-obs-build-4.4.103-6.38.1
      kernel-obs-build-debugsource-4.4.103-6.38.1

   - SUSE Linux Enterprise Software Development Kit 12-SP3 (noarch):

      kernel-docs-4.4.103-6.38.1

   - SUSE Linux Enterprise Server 12-SP3 (aarch64 ppc64le s390x x86_64):

      kernel-default-4.4.103-6.38.1
      kernel-default-base-4.4.103-6.38.1
      kernel-default-base-debuginfo-4.4.103-6.38.1
      kernel-default-debuginfo-4.4.103-6.38.1
      kernel-default-debugsource-4.4.103-6.38.1
      kernel-default-devel-4.4.103-6.38.1
      kernel-syms-4.4.103-6.38.1

   - SUSE Linux Enterprise Server 12-SP3 (noarch):

      kernel-devel-4.4.103-6.38.1
      kernel-macros-4.4.103-6.38.1
      kernel-source-4.4.103-6.38.1

   - SUSE Linux Enterprise Server 12-SP3 (s390x):

      kernel-default-man-4.4.103-6.38.1

   - SUSE Linux Enterprise Live Patching 12-SP3 (ppc64le x86_64):

      kgraft-patch-4_4_103-6_38-default-1-4.5.1
      kgraft-patch-4_4_103-6_38-default-debuginfo-1-4.5.1

   - SUSE Linux Enterprise High Availability 12-SP3 (ppc64le s390x x86_64):

      cluster-md-kmp-default-4.4.103-6.38.1
      cluster-md-kmp-default-debuginfo-4.4.103-6.38.1
      dlm-kmp-default-4.4.103-6.38.1
      dlm-kmp-default-debuginfo-4.4.103-6.38.1
      gfs2-kmp-default-4.4.103-6.38.1
      gfs2-kmp-default-debuginfo-4.4.103-6.38.1
      kernel-default-debuginfo-4.4.103-6.38.1
      kernel-default-debugsource-4.4.103-6.38.1
      ocfs2-kmp-default-4.4.103-6.38.1
      ocfs2-kmp-default-debuginfo-4.4.103-6.38.1

   - SUSE Linux Enterprise Desktop 12-SP3 (noarch):

      kernel-devel-4.4.103-6.38.1
      kernel-macros-4.4.103-6.38.1
      kernel-source-4.4.103-6.38.1

   - SUSE Linux Enterprise Desktop 12-SP3 (x86_64):

      kernel-default-4.4.103-6.38.1
      kernel-default-debuginfo-4.4.103-6.38.1
      kernel-default-debugsource-4.4.103-6.38.1
      kernel-default-devel-4.4.103-6.38.1
      kernel-default-extra-4.4.103-6.38.1
      kernel-default-extra-debuginfo-4.4.103-6.38.1
      kernel-syms-4.4.103-6.38.1

   - SUSE Container as a Service Platform ALL (x86_64):

      kernel-default-4.4.103-6.38.1
      kernel-default-debuginfo-4.4.103-6.38.1
      kernel-default-debugsource-4.4.103-6.38.1


References:

   https://www.suse.com/security/cve/CVE-2017-17805.html
   https://www.suse.com/security/cve/CVE-2017-17806.html
   https://www.suse.com/security/cve/CVE-2017-5715.html
   https://www.suse.com/security/cve/CVE-2017-5753.html
   https://www.suse.com/security/cve/CVE-2017-5754.html
   https://bugzilla.suse.com/1005778
   https://bugzilla.suse.com/1005780
   https://bugzilla.suse.com/1005781
   https://bugzilla.suse.com/1012382
   https://bugzilla.suse.com/1017967
   https://bugzilla.suse.com/1039616
   https://bugzilla.suse.com/1047487
   https://bugzilla.suse.com/1063043
   https://bugzilla.suse.com/1064311
   https://bugzilla.suse.com/1065180
   https://bugzilla.suse.com/1068032
   https://bugzilla.suse.com/1068951
   https://bugzilla.suse.com/1070116
   https://bugzilla.suse.com/1071009
   https://bugzilla.suse.com/1072166
   https://bugzilla.suse.com/1072216
   https://bugzilla.suse.com/1072556
   https://bugzilla.suse.com/1072866
   https://bugzilla.suse.com/1072890
   https://bugzilla.suse.com/1072962
   https://bugzilla.suse.com/1073090
   https://bugzilla.suse.com/1073525
   https://bugzilla.suse.com/1073792
   https://bugzilla.suse.com/1073809
   https://bugzilla.suse.com/1073868
   https://bugzilla.suse.com/1073874
   https://bugzilla.suse.com/1073912
   https://bugzilla.suse.com/963897
   https://bugzilla.suse.com/964063
   https://bugzilla.suse.com/966170
   https://bugzilla.suse.com/966172



More information about the sle-security-updates mailing list