Lucene search

K
suseSuseSUSE-SU-2018:0011-1
HistoryJan 04, 2018 - 12:14 p.m.

Security update for the Linux Kernel (important)

2018-01-0412:14:54
lists.opensuse.org
71

0.976 High

EPSS

Percentile

100.0%

The SUSE Linux Enterprise 11 SP4 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: 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: 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: 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 Intel x86_64 and IBM Power architecture.
    Updates are also necessary for the ARM architecture, but will be delivered
    in the next round of updates.

    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).
  • 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-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-16939: The XFRM dump policy implementation in
    net/xfrm/xfrm_user.c in the Linux kernel allowed local users to gain
    privileges or cause a denial of service (use-after-free) via a crafted
    SO_RCVBUF setsockopt system call in conjunction with XFRM_MSG_GETPOLICY
    Netlink messages (bnc#1069702).
  • 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-14106: The tcp_disconnect function in net/ipv4/tcp.c in the
    Linux kernel allowed local users to cause a denial of service
    (__tcp_select_window divide-by-zero error and system crash) by
    triggering a disconnect within a certain tcp_recvmsg code path
    (bnc#1056982).
  • 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-7472: The KEYS subsystem in the Linux kernel 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-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:

  • adm80211: return an error if adm8211_alloc_rings() fails (bsc#1048185).
  • autofs: fix careless error in recent commit (bsc#1065180).
  • bpf: prevent speculative execution in eBPF interpreter (bnc#1068032).
  • carl9170: prevent speculative execution (bnc#1068032).
  • ecryptfs: fix dereference of NULL user_key_payload (bsc#1013018).
  • eCryptfs: use after free in ecryptfs_release_messaging() (bsc#1013018).
  • fs/9p: Compare qid.path in v9fs_test_inode (bsc#1013018).
  • fs: prevent speculative execution (bnc#1068032).
  • isa: Prevent NULL dereference in isa_bus driver callbacks (bsc#1045538).
  • kabi: silence spurious kabi error in net/sctp/socket.c (bsc#1068671).
  • kaiser: add "nokaiser" boot option, using ALTERNATIVE.
  • kaiser: fix ldt freeing.
  • kaiser: Kernel Address Isolation.
  • kaiser: use ALTERNATIVE instead of x86_cr3_pcid_noflush.
  • kaiser: work around kABI.
  • 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).
  • media: cx231xx-cards: fix NULL-deref at probe (bsc#1050431).
  • mm/madvise.c: fix madvise() infinite loop under special circumstances
    (bnc#1070964).
  • mm/mmu_context, sched/core: Fix mmu_context.h assumption.
  • 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).
  • qeth: check not more than 16 SBALEs on the completion queue
    (bnc#1072457, LTC#148203).
  • s390: add ppa to system call and program check path (bsc#1068032).
  • s390/disassembler: correct disassembly lines alignment (bnc#1066973,
    LTC#161577).
  • s390/disassembler: increase show_code buffer size (bnc#1066973,
    LTC#161577).
  • s390: fix transactional execution control register handling
    (bnc#1072457, LTC#162116).
  • s390: introduce CPU alternatives.
  • s390: introduce CPU alternatives (bsc#1068032).
  • s390/spinlock: add gmb memory barrier.
  • s390/spinlock: add gmb memory barrier (bsc#1068032).
  • s390/spinlock: add ppa to system call path.
  • sched/core: Add switch_mm_irqs_off() and use it in the scheduler.
  • sched/core: Idle_task_exit() shouldn’t use switch_mm_irqs_off().
  • 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: zfcp: fix erp_action use-before-initialize in REC action trace
    (bnc#1066973, LTC#160081).
  • temporary fix (bsc#1068032).
  • udf: prevent speculative execution (bnc#1068032).
  • usb: host: fix incorrect updating of offset (bsc#1047487).
  • usb: uas: fix bug in handling of alternate settings (bsc#1071074).
  • uvcvideo: prevent speculative execution (bnc#1068032).
  • video: udlfb: Fix read EDID timeout (bsc#1045538).
  • watchdog: hpwdt: add support for iLO5 (bsc#1024612).
  • watchdog/hpwdt: Check source of NMI (bsc#1024612).
  • x86-64: Give vvars their own page.
  • x86-64: Map the HPET NX.
  • x86/acpi: Handle SCI interrupts above legacy space gracefully
    (bsc#1068984).
  • x86/acpi: Reduce code duplication in mp_override_legacy_irq()
    (bsc#1068984).
  • x86/alternatives: Add instruction padding.
  • x86/alternatives: Cleanup DPRINTK macro.
  • x86/alternatives: Make JMPs more robust.
  • x86/alternatives: Use optimized NOPs for padding.
  • x86/boot: Add early cmdline parsing for options with arguments.
  • x86, boot: Carve out early cmdline parsing function.
  • 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/cpu: Fix bootup crashes by sanitizing the argument of the
    ‘clearcpuid=’ command-line option (bsc#1065600).
  • 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: disable vmstat accounting.
  • x86/kaiser: Move feature detection up (bsc#1068032).
  • x86/kaiser: propagate info to /proc/cpuinfo.
  • 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: 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: Make alternative instruction pointers relative.
  • x86/microcode/AMD: Add support for fam17h microcode loading
    (bsc#1068032).
  • x86/mm/64: Fix reboot interaction with CR4.PCIDE.
  • x86/mm: Add a ‘noinvpcid’ boot option to turn off INVPCID.
  • x86/mm: Add INVPCID helpers.
  • x86/mm: Add the ‘nopcid’ boot option to turn off PCID.
  • x86/mm: Build arch/x86/mm/tlb.c even on !SMP.
  • x86/mm: Disable PCID on 32-bit kernels.
  • x86/mm: Enable CR4.PCIDE on supported systems.
  • x86/mm: fix bad backport to disable PCID on Xen.
  • x86/mm: Fix INVPCID asm constraint.
  • x86/mm: If INVPCID is available, use it to flush global mappings.
  • x86/mm/kaiser: re-enable vsyscalls.
  • x86/mm: Only set IBPB when the new thread cannot ptrace current thread
    (bsc#1068032).
  • x86/mm: Remove the UP asm/tlbflush.h code, always use the (formerly) SMP
    code.
  • x86/mm, sched/core: Turn off IRQs in switch_mm().
  • x86/mm, sched/core: Uninline switch_mm().
  • 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).
  • xen/kaiser: add "nokaiser" boot option, using ALTERNATIVE.
  • xen/KAISER: Kernel Address Isolation.
  • xen/kaiser: use ALTERNATIVE instead of x86_cr3_pcid_noflush.
  • xen/kaiser: work around kABI.
  • xen/x86-64: Give vvars their own page.
  • xen/x86-64: Map the HPET NX.
  • xen/x86/alternatives: Add instruction padding.
  • xen/x86/kaiser: Rename and simplify X86_FEATURE_KAISER handling.
  • xen/x86/mm: Enable CR4.PCIDE on supported systems.
  • xen/x86/mm/kaiser: re-enable vsyscalls.
  • xen/x86/mm: Remove the UP asm/tlbflush.h code, always use the (formerly)
    SMP code.
  • xen: x86/mm, sched/core: Turn off IRQs in switch_mm().
  • xen: x86/mm, sched/core: Uninline switch_mm().
  • zd1211rw: fix NULL-deref at probe (bsc#1045479).

0.976 High

EPSS

Percentile

100.0%

Related for SUSE-SU-2018:0011-1