SUSE Security Update: Security update for the Linux Kernel
______________________________________________________________________________
Announcement ID: SUSE-SU-2018:0011-1
Rating: important
References: #1013018 #1024612 #1034862 #1045479 #1045538
#1047487 #1048185 #1050231 #1050431 #1056982
#1063043 #1065180 #1065600 #1066569 #1066693
#1066973 #1068032 #1068671 #1068984 #1069702
#1070771 #1070964 #1071074 #1071470 #1071695
#1072457 #1072561 #1072876 #1073792 #1073874
Cross-References: CVE-2017-11600 CVE-2017-13167 CVE-2017-14106
CVE-2017-15115 CVE-2017-15868 CVE-2017-16534
CVE-2017-16538 CVE-2017-16939 CVE-2017-17450
CVE-2017-17558 CVE-2017-17805 CVE-2017-17806
CVE-2017-5715 CVE-2017-5753 CVE-2017-5754
CVE-2017-7472 CVE-2017-8824
Affected Products:
SUSE Linux Enterprise Software Development Kit 11-SP4
SUSE Linux Enterprise Server 11-SP4
SUSE Linux Enterprise Server 11-EXTRA
SUSE Linux Enterprise Debuginfo 11-SP4
______________________________________________________________________________
An update that solves 17 vulnerabilities and has 13 fixes
is now available.
Description:
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).
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 Software Development Kit 11-SP4:
zypper in -t patch sdksp4-kernel-20180109-13391=1
– SUSE Linux Enterprise Server 11-SP4:
zypper in -t patch slessp4-kernel-20180109-13391=1
– SUSE Linux Enterprise Server 11-EXTRA:
zypper in -t patch slexsp3-kernel-20180109-13391=1
– SUSE Linux Enterprise Debuginfo 11-SP4:
zypper in -t patch dbgsp4-kernel-20180109-13391=1
To bring your system up-to-date, use “zypper patch”.
Package List:
– SUSE Linux Enterprise Software Development Kit 11-SP4 (noarch):
kernel-docs-3.0.101-108.21.2
– SUSE Linux Enterprise Server 11-SP4 (i586 ia64 ppc64 s390x x86_64):
kernel-default-3.0.101-108.21.1
kernel-default-base-3.0.101-108.21.1
kernel-default-devel-3.0.101-108.21.1
kernel-source-3.0.101-108.21.1
kernel-syms-3.0.101-108.21.1
kernel-trace-3.0.101-108.21.1
kernel-trace-base-3.0.101-108.21.1
kernel-trace-devel-3.0.101-108.21.1
– SUSE Linux Enterprise Server 11-SP4 (i586 x86_64):
kernel-ec2-3.0.101-108.21.1
kernel-ec2-base-3.0.101-108.21.1
kernel-ec2-devel-3.0.101-108.21.1
kernel-xen-3.0.101-108.21.1
kernel-xen-base-3.0.101-108.21.1
kernel-xen-devel-3.0.101-108.21.1
– SUSE Linux Enterprise Server 11-SP4 (ppc64):
kernel-bigmem-3.0.101-108.21.1
kernel-bigmem-base-3.0.101-108.21.1
kernel-bigmem-devel-3.0.101-108.21.1
kernel-ppc64-3.0.101-108.21.1
kernel-ppc64-base-3.0.101-108.21.1
kernel-ppc64-devel-3.0.101-108.21.1
– SUSE Linux Enterprise Server 11-SP4 (s390x):
kernel-default-man-3.0.101-108.21.1
– SUSE Linux Enterprise Server 11-SP4 (i586):
kernel-pae-3.0.101-108.21.1
kernel-pae-base-3.0.101-108.21.1
kernel-pae-devel-3.0.101-108.21.1
– SUSE Linux Enterprise Server 11-EXTRA (i586 ia64 ppc64 s390x x86_64):
kernel-default-extra-3.0.101-108.21.1
– SUSE Linux Enterprise Server 11-EXTRA (i586 x86_64):
kernel-xen-extra-3.0.101-108.21.1
– SUSE Linux Enterprise Server 11-EXTRA (x86_64):
kernel-trace-extra-3.0.101-108.21.1
– SUSE Linux Enterprise Server 11-EXTRA (ppc64):
kernel-ppc64-extra-3.0.101-108.21.1
– SUSE Linux Enterprise Server 11-EXTRA (i586):
kernel-pae-extra-3.0.101-108.21.1
– SUSE Linux Enterprise Debuginfo 11-SP4 (i586 ia64 ppc64 s390x x86_64):
kernel-default-debuginfo-3.0.101-108.21.1
kernel-default-debugsource-3.0.101-108.21.1
kernel-trace-debuginfo-3.0.101-108.21.1
kernel-trace-debugsource-3.0.101-108.21.1
– SUSE Linux Enterprise Debuginfo 11-SP4 (i586 ia64 s390x x86_64):
kernel-default-devel-debuginfo-3.0.101-108.21.1
kernel-trace-devel-debuginfo-3.0.101-108.21.1
– SUSE Linux Enterprise Debuginfo 11-SP4 (i586 x86_64):
kernel-ec2-debuginfo-3.0.101-108.21.1
kernel-ec2-debugsource-3.0.101-108.21.1
kernel-xen-debuginfo-3.0.101-108.21.1
kernel-xen-debugsource-3.0.101-108.21.1
kernel-xen-devel-debuginfo-3.0.101-108.21.1
– SUSE Linux Enterprise Debuginfo 11-SP4 (ppc64):
kernel-bigmem-debuginfo-3.0.101-108.21.1
kernel-bigmem-debugsource-3.0.101-108.21.1
kernel-ppc64-debuginfo-3.0.101-108.21.1
kernel-ppc64-debugsource-3.0.101-108.21.1
– SUSE Linux Enterprise Debuginfo 11-SP4 (i586):
kernel-pae-debuginfo-3.0.101-108.21.1
kernel-pae-debugsource-3.0.101-108.21.1
kernel-pae-devel-debuginfo-3.0.101-108.21.1
References:
https://www.suse.com/security/cve/CVE-2017-11600.html
https://www.suse.com/security/cve/CVE-2017-13167.html
https://www.suse.com/security/cve/CVE-2017-14106.html
https://www.suse.com/security/cve/CVE-2017-15115.html
https://www.suse.com/security/cve/CVE-2017-15868.html
https://www.suse.com/security/cve/CVE-2017-16534.html
https://www.suse.com/security/cve/CVE-2017-16538.html
https://www.suse.com/security/cve/CVE-2017-16939.html
https://www.suse.com/security/cve/CVE-2017-17450.html
https://www.suse.com/security/cve/CVE-2017-17558.html
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://www.suse.com/security/cve/CVE-2017-7472.html
https://www.suse.com/security/cve/CVE-2017-8824.html
https://bugzilla.suse.com/1013018
https://bugzilla.suse.com/1024612
https://bugzilla.suse.com/1034862
https://bugzilla.suse.com/1045479
https://bugzilla.suse.com/1045538
https://bugzilla.suse.com/1047487
https://bugzilla.suse.com/1048185
https://bugzilla.suse.com/1050231
https://bugzilla.suse.com/1050431
https://bugzilla.suse.com/1056982
https://bugzilla.suse.com/1063043
https://bugzilla.suse.com/1065180
https://bugzilla.suse.com/1065600
https://bugzilla.suse.com/1066569
https://bugzilla.suse.com/1066693
https://bugzilla.suse.com/1066973
https://bugzilla.suse.com/1068032
https://bugzilla.suse.com/1068671
https://bugzilla.suse.com/1068984
https://bugzilla.suse.com/1069702
https://bugzilla.suse.com/1070771
https://bugzilla.suse.com/1070964
https://bugzilla.suse.com/1071074
https://bugzilla.suse.com/1071470
https://bugzilla.suse.com/1071695
https://bugzilla.suse.com/1072457
https://bugzilla.suse.com/1072561
https://bugzilla.suse.com/1072876
https://bugzilla.suse.com/1073792
https://bugzilla.suse.com/1073874
—
To unsubscribe, e-mail: opensuse-security-announce+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-security-announce+help@opensuse.org