SUSE Security Update: Security update for the Linux Kernel
______________________________________________________________________________

Announcement ID:    SUSE-SU-2018:0437-1
Rating:             important
References:         #1012382 #1047626 #1068032 #1070623 #1073311 
                    #1073792 #1073874 #1075091 #1075908 #1075994 
                    #1076017 #1076110 #1076154 #1076278 #1077355 
                    #1077560 #1077922 #893777 #893949 #902893 
                    #951638 
Cross-References:   CVE-2015-1142857 CVE-2017-13215 CVE-2017-17741
                    CVE-2017-17805 CVE-2017-17806 CVE-2017-18079
                    CVE-2017-5715 CVE-2018-1000004
Affected Products:
                    SUSE Linux Enterprise Server 12-LTSS
                    SUSE Linux Enterprise Module for Public Cloud 12
______________________________________________________________________________

   An update that solves 8 vulnerabilities and has 13 fixes is
   now available.

Description:


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

   The following security bugs were fixed:

   - CVE-2017-5715: Systems with microprocessors utilizing speculative
     execution and indirect branch prediction may allow unauthorized
     disclosure
     of information to an attacker with local user access via a side-channel
      analysis (bnc#1068032).

     The previous fix using CPU Microcode has been complemented by building
   the Linux Kernel with return trampolines aka "retpolines".

   - CVE-2017-18079: drivers/input/serio/i8042.c allowed attackers to cause a
     denial of service (NULL pointer dereference and system crash) or
     possibly have unspecified other impact because the port->exists value
     can change after it is validated (bnc#1077922)
   - CVE-2015-1142857: Prevent guests from sending ethernet flow control
     pause frames via the PF (bnc#1077355)
   - CVE-2017-17741: KVM allowed attackers to obtain potentially sensitive
     information from kernel memory, aka a write_mmio stack-based
     out-of-bounds read (bnc#1073311)
   - CVE-2017-13215: Prevent elevation of privilege (bnc#1075908)
   - CVE-2018-1000004: Prevent race condition in the sound system, this could
     have lead a deadlock and denial of service condition (bnc#1076017)
   - CVE-2017-17806: The HMAC implementation 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 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:

   - bcache allocator: send discards with correct size (bsc#1047626).
   - bcache.txt: standardize document format (bsc#1076110).
   - bcache: Abstract out stuff needed for sorting (bsc#1076110).
   - bcache: Add a cond_resched() call to gc (bsc#1076110).
   - bcache: Add a real GC_MARK_RECLAIMABLE (bsc#1076110).
   - bcache: Add bch_bkey_equal_header() (bsc#1076110).
   - bcache: Add bch_btree_keys_u64s_remaining() (bsc#1076110).
   - bcache: Add bch_keylist_init_single() (bsc#1047626).
   - bcache: Add btree_insert_node() (bnc#951638).
   - bcache: Add btree_map() functions (bsc#1047626).
   - bcache: Add btree_node_write_sync() (bsc#1076110).
   - bcache: Add explicit keylist arg to btree_insert() (bnc#951638).
   - bcache: Add make_btree_freeing_key() (bsc#1076110).
   - bcache: Add on error panic/unregister setting (bsc#1047626).
   - bcache: Add struct bset_sort_state (bsc#1076110).
   - bcache: Add struct btree_keys (bsc#1076110).
   - bcache: Allocate bounce buffers with GFP_NOWAIT (bsc#1076110).
   - bcache: Avoid deadlocking in garbage collection (bsc#1076110).
   - bcache: Avoid nested function definition (bsc#1076110).
   - bcache: Better alloc tracepoints (bsc#1076110).
   - bcache: Better full stripe scanning (bsc#1076110).
   - bcache: Bkey indexing renaming (bsc#1076110).
   - bcache: Break up struct search (bsc#1076110).
   - bcache: Btree verify code improvements (bsc#1076110).
   - bcache: Bypass torture test (bsc#1076110).
   - bcache: Change refill_dirty() to always scan entire disk if necessary
     (bsc#1076110).
   - bcache: Clean up cache_lookup_fn (bsc#1076110).
   - bcache: Clean up keylist code (bnc#951638).
   - bcache: Convert bch_btree_insert() to bch_btree_map_leaf_nodes()
     (bsc#1076110).
   - bcache: Convert bch_btree_read_async() to bch_btree_map_keys()
     (bsc#1076110).
   - bcache: Convert btree_insert_check_key() to btree_insert_node()
     (bnc#951638).
   - bcache: Convert btree_iter to struct btree_keys (bsc#1076110).
   - bcache: Convert bucket_wait to wait_queue_head_t (bnc#951638).
   - bcache: Convert debug code to btree_keys (bsc#1076110).
   - bcache: Convert gc to a kthread (bsc#1047626).
   - bcache: Convert sorting to btree_keys (bsc#1076110).
   - bcache: Convert try_wait to wait_queue_head_t (bnc#951638).
   - bcache: Convert writeback to a kthread (bsc#1076110).
   - bcache: Correct return value for sysfs attach errors (bsc#1076110).
   - bcache: Debug code improvements (bsc#1076110).
   - bcache: Delete some slower inline asm (bsc#1047626).
   - bcache: Do bkey_put() in btree_split() error path (bsc#1076110).
   - bcache: Do not bother with bucket refcount for btree node allocations
     (bsc#1076110).
   - bcache: Do not reinvent the wheel but use existing llist API
     (bsc#1076110).
   - bcache: Do not return -EINTR when insert finished (bsc#1076110).
   - bcache: Do not touch bucket gen for dirty ptrs (bsc#1076110).
   - bcache: Do not use op->insert_collision (bsc#1076110).
   - bcache: Drop some closure stuff (bsc#1076110).
   - bcache: Drop unneeded blk_sync_queue() calls (bsc#1047626).
   - bcache: Explicitly track btree node's parent (bnc#951638).
   - bcache: Fix a bug recovering from unclean shutdown (bsc#1047626).
   - bcache: Fix a bug when detaching (bsc#951638).
   - bcache: Fix a journal replay bug (bsc#1076110).
   - bcache: Fix a journalling performance bug (bnc#893777).
   - bcache: Fix a journalling reclaim after recovery bug (bsc#1047626).
   - bcache: Fix a lockdep splat (bnc#893777).
   - bcache: Fix a lockdep splat in an error path (bnc#951638).
   - bcache: Fix a null ptr deref in journal replay (bsc#1047626).
   - bcache: Fix a race when freeing btree nodes (bsc#1076110).
   - bcache: Fix a shutdown bug (bsc#951638).
   - bcache: Fix an infinite loop in journal replay (bsc#1047626).
   - bcache: Fix another bug recovering from unclean shutdown (bsc#1076110).
   - bcache: Fix another compiler warning on m68k (bsc#1076110).
   - bcache: Fix auxiliary search trees for key size > cacheline size
     (bsc#1076110).
   - bcache: Fix bch_ptr_bad() (bsc#1047626).
   - bcache: Fix building error on MIPS (bsc#1076110).
   - bcache: Fix dirty_data accounting (bsc#1076110).
   - bcache: Fix discard granularity (bsc#1047626).
   - bcache: Fix flash_dev_cache_miss() for real this time (bsc#1076110).
   - bcache: Fix for can_attach_cache() (bsc#1047626).
   - bcache: Fix heap_peek() macro (bsc#1047626).
   - bcache: Fix leak of bdev reference (bsc#1076110).
   - bcache: Fix more early shutdown bugs (bsc#951638).
   - bcache: Fix moving_gc deadlocking with a foreground write (bsc#1076110).
   - bcache: Fix moving_pred() (bsc#1047626).
   - bcache: Fix sysfs splat on shutdown with flash only devs (bsc#951638).
   - bcache: Fix to remove the rcu_sched stalls (bsc#1047626).
   - bcache: Have btree_split() insert into parent directly (bsc#1076110).
   - bcache: Improve bucket_prio() calculation (bsc#1047626).
   - bcache: Improve priority_stats (bsc#1047626).
   - bcache: Incremental gc (bsc#1076110).
   - bcache: Insert multiple keys at a time (bnc#951638).
   - bcache: Kill bch_next_recurse_key() (bsc#1076110).
   - bcache: Kill btree_io_wq (bsc#1076110).
   - bcache: Kill bucket->gc_gen (bsc#1076110).
   - bcache: Kill dead cgroup code (bsc#1076110).
   - bcache: Kill op->cl (bsc#1076110).
   - bcache: Kill op->replace (bsc#1076110).
   - bcache: Kill sequential_merge option (bsc#1076110).
   - bcache: Kill unaligned bvec hack (bsc#1076110).
   - bcache: Kill unused freelist (bsc#1076110).
   - bcache: Make bch_keylist_realloc() take u64s, not nptrs (bsc#1076110).
   - bcache: Make gc wakeup sane, remove set_task_state() (bsc#1076110).
   - bcache: Minor btree cache fix (bsc#1047626).
   - bcache: Minor fixes from kbuild robot (bsc#1076110).
   - bcache: Move insert_fixup() to btree_keys_ops (bsc#1076110).
   - bcache: Move keylist out of btree_op (bsc#1047626).
   - bcache: Move sector allocator to alloc.c (bsc#1076110).
   - bcache: Move some stuff to btree.c (bsc#1076110).
   - bcache: Move spinlock into struct time_stats (bsc#1076110).
   - bcache: New writeback PD controller (bsc#1047626).
   - bcache: PRECEDING_KEY() (bsc#1047626).
   - bcache: Performance fix for when journal entry is full (bsc#1047626).
   - bcache: Prune struct btree_op (bsc#1076110).
   - bcache: Pull on disk data structures out into a separate header
     (bsc#1076110).
   - bcache: RESERVE_PRIO is too small by one when prio_buckets() is a power
     of two (bsc#1076110).
   - bcache: Really show state of work pending bit (bsc#1076110).
   - bcache: Refactor bset_tree sysfs stats (bsc#1076110).
   - bcache: Refactor journalling flow control (bnc#951638).
   - bcache: Refactor read request code a bit (bsc#1076110).
   - bcache: Refactor request_write() (bnc#951638).
   - bcache: Remove deprecated create_workqueue (bsc#1076110).
   - bcache: Remove redundant block_size assignment (bsc#1047626).
   - bcache: Remove redundant parameter for cache_alloc() (bsc#1047626).
   - bcache: Remove redundant set_capacity (bsc#1076110).
   - bcache: Remove unnecessary check in should_split() (bsc#1076110).
   - bcache: Remove/fix some header dependencies (bsc#1047626).
   - bcache: Rename/shuffle various code around (bsc#1076110).
   - bcache: Rework allocator reserves (bsc#1076110).
   - bcache: Rework btree cache reserve handling (bsc#1076110).
   - bcache: Split out sort_extent_cmp() (bsc#1076110).
   - bcache: Stripe size isn't necessarily a power of two (bnc#893949).
   - bcache: Trivial error handling fix (bsc#1047626).
   - bcache: Update continue_at() documentation (bsc#1076110).
   - bcache: Use a mempool for mergesort temporary space (bsc#1076110).
   - bcache: Use blkdev_issue_discard() (bnc#951638).
   - bcache: Use ida for bcache block dev minor (bsc#1047626).
   - bcache: Use uninterruptible sleep in writeback (bsc#1076110).
   - bcache: Zero less memory (bsc#1076110).
   - bcache: add a comment in journal bucket reading (bsc#1076110).
   - bcache: add mutex lock for bch_is_open (bnc#902893).
   - bcache: allows use of register in udev to avoid "device_busy" error
     (bsc#1047626).
   - bcache: bcache_write tracepoint was crashing (bsc#1076110).
   - bcache: bch_(btree|extent)_ptr_invalid() (bsc#1076110).
   - bcache: bch_allocator_thread() is not freezable (bsc#1047626).
   - bcache: bch_gc_thread() is not freezable (bsc#1047626).
   - bcache: bch_writeback_thread() is not freezable (bsc#1076110).
   - bcache: btree locking rework (bsc#1076110).
   - bcache: bugfix - gc thread now gets woken when cache is full
     (bsc#1047626).
   - bcache: bugfix - moving_gc now moves only correct buckets (bsc#1047626).
   - bcache: bugfix for race between moving_gc and bucket_invalidate
     (bsc#1076110).
   - bcache: check ca->alloc_thread initialized before wake up it
     (bsc#1076110).
   - bcache: check return value of register_shrinker (bsc#1076110).
   - bcache: cleaned up error handling around register_cache() (bsc#1047626).
   - bcache: clear BCACHE_DEV_UNLINK_DONE flag when attaching a backing
     device (bsc#1047626).
   - bcache: correct cache_dirty_target in __update_writeback_rate()
     (bsc#1076110).
   - bcache: defensively handle format strings (bsc#1047626).
   - bcache: do not embed 'return' statements in closure macros (bsc#1076110).
   - bcache: do not subtract sectors_to_gc for bypassed IO (bsc#1076110).
   - bcache: do not write back data if reading it failed (bsc#1076110).
   - bcache: documentation formatting, edited for clarity, stripe alignment
     notes (bsc#1076110).
   - bcache: documentation updates and corrections (bsc#1076110).
   - bcache: explicitly destroy mutex while exiting (bsc#1076110).
   - bcache: fix BUG_ON due to integer overflow with GC_SECTORS_USED
     (bsc#1047626).
   - bcache: fix a comments typo in bch_alloc_sectors() (bsc#1076110).
   - bcache: fix a livelock when we cause a huge number of cache misses
     (bsc#1047626).
   - bcache: fix bch_hprint crash and improve output (bsc#1076110).
   - bcache: fix crash in bcache_btree_node_alloc_fail tracepoint
     (bsc#1047626).
   - bcache: fix crash on shutdown in passthrough mode (bsc#1076110).
   - bcache: fix for gc and write-back race (bsc#1076110).
   - bcache: fix for gc and writeback race (bsc#1047626).
   - bcache: fix for gc crashing when no sectors are used (bsc#1047626).
   - bcache: fix lockdep warnings on shutdown (bsc#1047626).
   - bcache: fix race of writeback thread starting before complete
     initialization (bsc#1076110).
   - bcache: fix sequential large write IO bypass (bsc#1076110).
   - bcache: fix sparse non static symbol warning (bsc#1076110).
   - bcache: fix typo in bch_bkey_equal_header (bsc#1076110).
   - bcache: fix uninterruptible sleep in writeback thread (bsc#1076110).
   - bcache: fix use-after-free in btree_gc_coalesce() (bsc#1076110).
   - bcache: fix wrong cache_misses statistics (bsc#1076110).
   - bcache: gc does not work when triggering by manual command (bsc#1076110).
   - bcache: implement PI controller for writeback rate (bsc#1076110).
   - bcache: increase the number of open buckets (bsc#1076110).
   - bcache: initialize dirty stripes in flash_dev_run() (bsc#1076110).
   - bcache: kill closure locking code (bsc#1076110).
   - bcache: kill closure locking usage (bnc#951638).
   - bcache: kill index() (bsc#1047626).
   - bcache: kthread do not set writeback task to INTERUPTIBLE (bsc#1076110).
   - bcache: only permit to recovery read error when cache device is clean
     (bsc#1076110).
   - bcache: partition support: add 16 minors per bcacheN device
     (bsc#1076110).
   - bcache: pr_err: more meaningful error message when nr_stripes is invalid
     (bsc#1076110).
   - bcache: prevent crash on changing writeback_running (bsc#1076110).
   - bcache: rearrange writeback main thread ratelimit (bsc#1076110).
   - bcache: recover data from backing when data is clean (bsc#1076110).
   - bcache: register_bcache(): call blkdev_put() when cache_alloc() fails
     (bsc#1047626).
   - bcache: remove nested function usage (bsc#1076110).
   - bcache: remove unused parameter (bsc#1076110).
   - bcache: rewrite multiple partitions support (bsc#1076110).
   - bcache: safeguard a dangerous addressing in closure_queue (bsc#1076110).
   - bcache: silence static checker warning (bsc#1076110).
   - bcache: smooth writeback rate control (bsc#1076110).
   - bcache: stop moving_gc marking buckets that can't be moved (bsc#1047626).
   - bcache: try to set b->parent properly (bsc#1076110).
   - bcache: update bch_bkey_try_merge (bsc#1076110).
   - bcache: update bio->bi_opf bypass/writeback REQ_ flag hints
     (bsc#1076110).
   - bcache: update bucket_in_use in real time (bsc#1076110).
   - bcache: update document info (bsc#1076110).
   - bcache: use kmalloc to allocate bio in bch_data_verify() (bsc#1076110).
   - bcache: use kvfree() in various places (bsc#1076110).
   - bcache: use llist_for_each_entry_safe() in __closure_wake_up()
     (bsc#1076110).
   - bcache: wait for buckets when allocating new btree root (bsc#1076110).
   - bcache: writeback rate clamping: make 32 bit safe (bsc#1076110).
   - bcache: writeback rate shouldn't artifically clamp (bsc#1076110).
   - fork: clear thread stack upon allocation (bsc#1077560).
   - gcov: disable for COMPILE_TEST (bnc#1012382).
   - kaiser: Set _PAGE_NX only if supported (bnc#1012382, bnc#1076154).
   - kaiser: Set _PAGE_NX only if supported (bnc#1012382, bnc#1076278).
   - md: more open-coded offset_in_page() (bsc#1076110).
   - nfsd: do not share group_info among threads (bsc@1070623).
   - sysfs/cpu: Add vulnerability folder (bnc#1012382).
   - sysfs: spectre_v2, handle spec_ctrl (bsc#1075994 bsc#1075091).
   - x86/cpu: Implement CPU vulnerabilites sysfs functions (bnc#1012382).
   - x86/cpufeatures: Add X86_BUG_CPU_INSECURE (bnc#1012382).
   - x86/cpufeatures: Add X86_BUG_SPECTRE_V[12] (bnc#1012382).
   - x86/cpufeatures: Make CPU bugs sticky (bnc#1012382).
   - x86/pti: Rename BUG_CPU_INSECURE to BUG_CPU_MELTDOWN (bnc#1012382).
   - x86/retpolines/spec_ctrl: disable IBRS on !SKL if retpolines are active
     (bsc#1068032).
   - x86/spectre_v2: fix ordering in IBRS initialization (bsc#1075994
     bsc#1075091).
   - x86/spectre_v2: nospectre_v2 means nospec too (bsc#1075994 bsc#1075091).


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 Server 12-LTSS:

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

   - SUSE Linux Enterprise Module for Public Cloud 12:

      zypper in -t patch SUSE-SLE-Module-Public-Cloud-12-2018-301=1

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


Package List:

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

      kernel-default-3.12.61-52.119.1
      kernel-default-base-3.12.61-52.119.1
      kernel-default-base-debuginfo-3.12.61-52.119.1
      kernel-default-debuginfo-3.12.61-52.119.1
      kernel-default-debugsource-3.12.61-52.119.1
      kernel-default-devel-3.12.61-52.119.1
      kernel-syms-3.12.61-52.119.1

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

      kernel-devel-3.12.61-52.119.1
      kernel-macros-3.12.61-52.119.1
      kernel-source-3.12.61-52.119.1

   - SUSE Linux Enterprise Server 12-LTSS (x86_64):

      kernel-xen-3.12.61-52.119.1
      kernel-xen-base-3.12.61-52.119.1
      kernel-xen-base-debuginfo-3.12.61-52.119.1
      kernel-xen-debuginfo-3.12.61-52.119.1
      kernel-xen-debugsource-3.12.61-52.119.1
      kernel-xen-devel-3.12.61-52.119.1
      kgraft-patch-3_12_61-52_119-default-1-1.7.1
      kgraft-patch-3_12_61-52_119-xen-1-1.7.1

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

      kernel-default-man-3.12.61-52.119.1

   - SUSE Linux Enterprise Module for Public Cloud 12 (x86_64):

      kernel-ec2-3.12.61-52.119.1
      kernel-ec2-debuginfo-3.12.61-52.119.1
      kernel-ec2-debugsource-3.12.61-52.119.1
      kernel-ec2-devel-3.12.61-52.119.1
      kernel-ec2-extra-3.12.61-52.119.1
      kernel-ec2-extra-debuginfo-3.12.61-52.119.1


References:

   https://www.suse.com/security/cve/CVE-2015-1142857.html
   https://www.suse.com/security/cve/CVE-2017-13215.html
   https://www.suse.com/security/cve/CVE-2017-17741.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-18079.html
   https://www.suse.com/security/cve/CVE-2017-5715.html
   https://www.suse.com/security/cve/CVE-2018-1000004.html
   https://bugzilla.suse.com/1012382
   https://bugzilla.suse.com/1047626
   https://bugzilla.suse.com/1068032
   https://bugzilla.suse.com/1070623
   https://bugzilla.suse.com/1073311
   https://bugzilla.suse.com/1073792
   https://bugzilla.suse.com/1073874
   https://bugzilla.suse.com/1075091
   https://bugzilla.suse.com/1075908
   https://bugzilla.suse.com/1075994
   https://bugzilla.suse.com/1076017
   https://bugzilla.suse.com/1076110
   https://bugzilla.suse.com/1076154
   https://bugzilla.suse.com/1076278
   https://bugzilla.suse.com/1077355
   https://bugzilla.suse.com/1077560
   https://bugzilla.suse.com/1077922
   https://bugzilla.suse.com/893777
   https://bugzilla.suse.com/893949
   https://bugzilla.suse.com/902893
   https://bugzilla.suse.com/951638

-- 

SUSE: 2018:0437-1: important: the Linux Kernel

February 13, 2018
An update that solves 8 vulnerabilities and has 13 fixes is now available.

Summary

The SUSE Linux Enterprise 12 GA LTSS kernel was updated to receive various security and bugfixes. The following security bugs were fixed: - CVE-2017-5715: Systems with microprocessors utilizing speculative execution and indirect branch prediction may allow unauthorized disclosure of information to an attacker with local user access via a side-channel analysis (bnc#1068032). The previous fix using CPU Microcode has been complemented by building the Linux Kernel with return trampolines aka "retpolines". - CVE-2017-18079: drivers/input/serio/i8042.c allowed attackers to cause a denial of service (NULL pointer dereference and system crash) or possibly have unspecified other impact because the port->exists value can change after it is validated (bnc#1077922) - CVE-2015-1142857: Prevent guests from sending ethernet flow control pause frames via the PF (bnc#1077355) - CVE-2017-17741: KVM allowed attackers to obtain potentially sensitive information from kernel memory, aka a write_mmio stack-based out-of-bounds read (bnc#1073311) - CVE-2017-13215: Prevent elevation of privilege (bnc#1075908) - CVE-2018-1000004: Prevent race condition in the sound system, this could have lead a deadlock and denial of service condition (bnc#1076017) - CVE-2017-17806: The HMAC implementation 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 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: - bcache allocator: send discards with correct size (bsc#1047626). - bcache.txt: standardize document format (bsc#1076110). - bcache: Abstract out stuff needed for sorting (bsc#1076110). - bcache: Add a cond_resched() call to gc (bsc#1076110). - bcache: Add a real GC_MARK_RECLAIMABLE (bsc#1076110). - bcache: Add bch_bkey_equal_header() (bsc#1076110). - bcache: Add bch_btree_keys_u64s_remaining() (bsc#1076110). - bcache: Add bch_keylist_init_single() (bsc#1047626). - bcache: Add btree_insert_node() (bnc#951638). - bcache: Add btree_map() functions (bsc#1047626). - bcache: Add btree_node_write_sync() (bsc#1076110). - bcache: Add explicit keylist arg to btree_insert() (bnc#951638). - bcache: Add make_btree_freeing_key() (bsc#1076110). - bcache: Add on error panic/unregister setting (bsc#1047626). - bcache: Add struct bset_sort_state (bsc#1076110). - bcache: Add struct btree_keys (bsc#1076110). - bcache: Allocate bounce buffers with GFP_NOWAIT (bsc#1076110). - bcache: Avoid deadlocking in garbage collection (bsc#1076110). - bcache: Avoid nested function definition (bsc#1076110). - bcache: Better alloc tracepoints (bsc#1076110). - bcache: Better full stripe scanning (bsc#1076110). - bcache: Bkey indexing renaming (bsc#1076110). - bcache: Break up struct search (bsc#1076110). - bcache: Btree verify code improvements (bsc#1076110). - bcache: Bypass torture test (bsc#1076110). - bcache: Change refill_dirty() to always scan entire disk if necessary (bsc#1076110). - bcache: Clean up cache_lookup_fn (bsc#1076110). - bcache: Clean up keylist code (bnc#951638). - bcache: Convert bch_btree_insert() to bch_btree_map_leaf_nodes() (bsc#1076110). - bcache: Convert bch_btree_read_async() to bch_btree_map_keys() (bsc#1076110). - bcache: Convert btree_insert_check_key() to btree_insert_node() (bnc#951638). - bcache: Convert btree_iter to struct btree_keys (bsc#1076110). - bcache: Convert bucket_wait to wait_queue_head_t (bnc#951638). - bcache: Convert debug code to btree_keys (bsc#1076110). - bcache: Convert gc to a kthread (bsc#1047626). - bcache: Convert sorting to btree_keys (bsc#1076110). - bcache: Convert try_wait to wait_queue_head_t (bnc#951638). - bcache: Convert writeback to a kthread (bsc#1076110). - bcache: Correct return value for sysfs attach errors (bsc#1076110). - bcache: Debug code improvements (bsc#1076110). - bcache: Delete some slower inline asm (bsc#1047626). - bcache: Do bkey_put() in btree_split() error path (bsc#1076110). - bcache: Do not bother with bucket refcount for btree node allocations (bsc#1076110). - bcache: Do not reinvent the wheel but use existing llist API (bsc#1076110). - bcache: Do not return -EINTR when insert finished (bsc#1076110). - bcache: Do not touch bucket gen for dirty ptrs (bsc#1076110). - bcache: Do not use op->insert_collision (bsc#1076110). - bcache: Drop some closure stuff (bsc#1076110). - bcache: Drop unneeded blk_sync_queue() calls (bsc#1047626). - bcache: Explicitly track btree node's parent (bnc#951638). - bcache: Fix a bug recovering from unclean shutdown (bsc#1047626). - bcache: Fix a bug when detaching (bsc#951638). - bcache: Fix a journal replay bug (bsc#1076110). - bcache: Fix a journalling performance bug (bnc#893777). - bcache: Fix a journalling reclaim after recovery bug (bsc#1047626). - bcache: Fix a lockdep splat (bnc#893777). - bcache: Fix a lockdep splat in an error path (bnc#951638). - bcache: Fix a null ptr deref in journal replay (bsc#1047626). - bcache: Fix a race when freeing btree nodes (bsc#1076110). - bcache: Fix a shutdown bug (bsc#951638). - bcache: Fix an infinite loop in journal replay (bsc#1047626). - bcache: Fix another bug recovering from unclean shutdown (bsc#1076110). - bcache: Fix another compiler warning on m68k (bsc#1076110). - bcache: Fix auxiliary search trees for key size > cacheline size (bsc#1076110). - bcache: Fix bch_ptr_bad() (bsc#1047626). - bcache: Fix building error on MIPS (bsc#1076110). - bcache: Fix dirty_data accounting (bsc#1076110). - bcache: Fix discard granularity (bsc#1047626). - bcache: Fix flash_dev_cache_miss() for real this time (bsc#1076110). - bcache: Fix for can_attach_cache() (bsc#1047626). - bcache: Fix heap_peek() macro (bsc#1047626). - bcache: Fix leak of bdev reference (bsc#1076110). - bcache: Fix more early shutdown bugs (bsc#951638). - bcache: Fix moving_gc deadlocking with a foreground write (bsc#1076110). - bcache: Fix moving_pred() (bsc#1047626). - bcache: Fix sysfs splat on shutdown with flash only devs (bsc#951638). - bcache: Fix to remove the rcu_sched stalls (bsc#1047626). - bcache: Have btree_split() insert into parent directly (bsc#1076110). - bcache: Improve bucket_prio() calculation (bsc#1047626). - bcache: Improve priority_stats (bsc#1047626). - bcache: Incremental gc (bsc#1076110). - bcache: Insert multiple keys at a time (bnc#951638). - bcache: Kill bch_next_recurse_key() (bsc#1076110). - bcache: Kill btree_io_wq (bsc#1076110). - bcache: Kill bucket->gc_gen (bsc#1076110). - bcache: Kill dead cgroup code (bsc#1076110). - bcache: Kill op->cl (bsc#1076110). - bcache: Kill op->replace (bsc#1076110). - bcache: Kill sequential_merge option (bsc#1076110). - bcache: Kill unaligned bvec hack (bsc#1076110). - bcache: Kill unused freelist (bsc#1076110). - bcache: Make bch_keylist_realloc() take u64s, not nptrs (bsc#1076110). - bcache: Make gc wakeup sane, remove set_task_state() (bsc#1076110). - bcache: Minor btree cache fix (bsc#1047626). - bcache: Minor fixes from kbuild robot (bsc#1076110). - bcache: Move insert_fixup() to btree_keys_ops (bsc#1076110). - bcache: Move keylist out of btree_op (bsc#1047626). - bcache: Move sector allocator to alloc.c (bsc#1076110). - bcache: Move some stuff to btree.c (bsc#1076110). - bcache: Move spinlock into struct time_stats (bsc#1076110). - bcache: New writeback PD controller (bsc#1047626). - bcache: PRECEDING_KEY() (bsc#1047626). - bcache: Performance fix for when journal entry is full (bsc#1047626). - bcache: Prune struct btree_op (bsc#1076110). - bcache: Pull on disk data structures out into a separate header (bsc#1076110). - bcache: RESERVE_PRIO is too small by one when prio_buckets() is a power of two (bsc#1076110). - bcache: Really show state of work pending bit (bsc#1076110). - bcache: Refactor bset_tree sysfs stats (bsc#1076110). - bcache: Refactor journalling flow control (bnc#951638). - bcache: Refactor read request code a bit (bsc#1076110). - bcache: Refactor request_write() (bnc#951638). - bcache: Remove deprecated create_workqueue (bsc#1076110). - bcache: Remove redundant block_size assignment (bsc#1047626). - bcache: Remove redundant parameter for cache_alloc() (bsc#1047626). - bcache: Remove redundant set_capacity (bsc#1076110). - bcache: Remove unnecessary check in should_split() (bsc#1076110). - bcache: Remove/fix some header dependencies (bsc#1047626). - bcache: Rename/shuffle various code around (bsc#1076110). - bcache: Rework allocator reserves (bsc#1076110). - bcache: Rework btree cache reserve handling (bsc#1076110). - bcache: Split out sort_extent_cmp() (bsc#1076110). - bcache: Stripe size isn't necessarily a power of two (bnc#893949). - bcache: Trivial error handling fix (bsc#1047626). - bcache: Update continue_at() documentation (bsc#1076110). - bcache: Use a mempool for mergesort temporary space (bsc#1076110). - bcache: Use blkdev_issue_discard() (bnc#951638). - bcache: Use ida for bcache block dev minor (bsc#1047626). - bcache: Use uninterruptible sleep in writeback (bsc#1076110). - bcache: Zero less memory (bsc#1076110). - bcache: add a comment in journal bucket reading (bsc#1076110). - bcache: add mutex lock for bch_is_open (bnc#902893). - bcache: allows use of register in udev to avoid "device_busy" error (bsc#1047626). - bcache: bcache_write tracepoint was crashing (bsc#1076110). - bcache: bch_(btree|extent)_ptr_invalid() (bsc#1076110). - bcache: bch_allocator_thread() is not freezable (bsc#1047626). - bcache: bch_gc_thread() is not freezable (bsc#1047626). - bcache: bch_writeback_thread() is not freezable (bsc#1076110). - bcache: btree locking rework (bsc#1076110). - bcache: bugfix - gc thread now gets woken when cache is full (bsc#1047626). - bcache: bugfix - moving_gc now moves only correct buckets (bsc#1047626). - bcache: bugfix for race between moving_gc and bucket_invalidate (bsc#1076110). - bcache: check ca->alloc_thread initialized before wake up it (bsc#1076110). - bcache: check return value of register_shrinker (bsc#1076110). - bcache: cleaned up error handling around register_cache() (bsc#1047626). - bcache: clear BCACHE_DEV_UNLINK_DONE flag when attaching a backing device (bsc#1047626). - bcache: correct cache_dirty_target in __update_writeback_rate() (bsc#1076110). - bcache: defensively handle format strings (bsc#1047626). - bcache: do not embed 'return' statements in closure macros (bsc#1076110). - bcache: do not subtract sectors_to_gc for bypassed IO (bsc#1076110). - bcache: do not write back data if reading it failed (bsc#1076110). - bcache: documentation formatting, edited for clarity, stripe alignment notes (bsc#1076110). - bcache: documentation updates and corrections (bsc#1076110). - bcache: explicitly destroy mutex while exiting (bsc#1076110). - bcache: fix BUG_ON due to integer overflow with GC_SECTORS_USED (bsc#1047626). - bcache: fix a comments typo in bch_alloc_sectors() (bsc#1076110). - bcache: fix a livelock when we cause a huge number of cache misses (bsc#1047626). - bcache: fix bch_hprint crash and improve output (bsc#1076110). - bcache: fix crash in bcache_btree_node_alloc_fail tracepoint (bsc#1047626). - bcache: fix crash on shutdown in passthrough mode (bsc#1076110). - bcache: fix for gc and write-back race (bsc#1076110). - bcache: fix for gc and writeback race (bsc#1047626). - bcache: fix for gc crashing when no sectors are used (bsc#1047626). - bcache: fix lockdep warnings on shutdown (bsc#1047626). - bcache: fix race of writeback thread starting before complete initialization (bsc#1076110). - bcache: fix sequential large write IO bypass (bsc#1076110). - bcache: fix sparse non static symbol warning (bsc#1076110). - bcache: fix typo in bch_bkey_equal_header (bsc#1076110). - bcache: fix uninterruptible sleep in writeback thread (bsc#1076110). - bcache: fix use-after-free in btree_gc_coalesce() (bsc#1076110). - bcache: fix wrong cache_misses statistics (bsc#1076110). - bcache: gc does not work when triggering by manual command (bsc#1076110). - bcache: implement PI controller for writeback rate (bsc#1076110). - bcache: increase the number of open buckets (bsc#1076110). - bcache: initialize dirty stripes in flash_dev_run() (bsc#1076110). - bcache: kill closure locking code (bsc#1076110). - bcache: kill closure locking usage (bnc#951638). - bcache: kill index() (bsc#1047626). - bcache: kthread do not set writeback task to INTERUPTIBLE (bsc#1076110). - bcache: only permit to recovery read error when cache device is clean (bsc#1076110). - bcache: partition support: add 16 minors per bcacheN device (bsc#1076110). - bcache: pr_err: more meaningful error message when nr_stripes is invalid (bsc#1076110). - bcache: prevent crash on changing writeback_running (bsc#1076110). - bcache: rearrange writeback main thread ratelimit (bsc#1076110). - bcache: recover data from backing when data is clean (bsc#1076110). - bcache: register_bcache(): call blkdev_put() when cache_alloc() fails (bsc#1047626). - bcache: remove nested function usage (bsc#1076110). - bcache: remove unused parameter (bsc#1076110). - bcache: rewrite multiple partitions support (bsc#1076110). - bcache: safeguard a dangerous addressing in closure_queue (bsc#1076110). - bcache: silence static checker warning (bsc#1076110). - bcache: smooth writeback rate control (bsc#1076110). - bcache: stop moving_gc marking buckets that can't be moved (bsc#1047626). - bcache: try to set b->parent properly (bsc#1076110). - bcache: update bch_bkey_try_merge (bsc#1076110). - bcache: update bio->bi_opf bypass/writeback REQ_ flag hints (bsc#1076110). - bcache: update bucket_in_use in real time (bsc#1076110). - bcache: update document info (bsc#1076110). - bcache: use kmalloc to allocate bio in bch_data_verify() (bsc#1076110). - bcache: use kvfree() in various places (bsc#1076110). - bcache: use llist_for_each_entry_safe() in __closure_wake_up() (bsc#1076110). - bcache: wait for buckets when allocating new btree root (bsc#1076110). - bcache: writeback rate clamping: make 32 bit safe (bsc#1076110). - bcache: writeback rate shouldn't artifically clamp (bsc#1076110). - fork: clear thread stack upon allocation (bsc#1077560). - gcov: disable for COMPILE_TEST (bnc#1012382). - kaiser: Set _PAGE_NX only if supported (bnc#1012382, bnc#1076154). - kaiser: Set _PAGE_NX only if supported (bnc#1012382, bnc#1076278). - md: more open-coded offset_in_page() (bsc#1076110). - nfsd: do not share group_info among threads (bsc@1070623). - sysfs/cpu: Add vulnerability folder (bnc#1012382). - sysfs: spectre_v2, handle spec_ctrl (bsc#1075994 bsc#1075091). - x86/cpu: Implement CPU vulnerabilites sysfs functions (bnc#1012382). - x86/cpufeatures: Add X86_BUG_CPU_INSECURE (bnc#1012382). - x86/cpufeatures: Add X86_BUG_SPECTRE_V[12] (bnc#1012382). - x86/cpufeatures: Make CPU bugs sticky (bnc#1012382). - x86/pti: Rename BUG_CPU_INSECURE to BUG_CPU_MELTDOWN (bnc#1012382). - x86/retpolines/spec_ctrl: disable IBRS on !SKL if retpolines are active (bsc#1068032). - x86/spectre_v2: fix ordering in IBRS initialization (bsc#1075994 bsc#1075091). - x86/spectre_v2: nospectre_v2 means nospec too (bsc#1075994 bsc#1075091). 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 Server 12-LTSS: zypper in -t patch SUSE-SLE-SERVER-12-2018-301=1 - SUSE Linux Enterprise Module for Public Cloud 12: zypper in -t patch SUSE-SLE-Module-Public-Cloud-12-2018-301=1 To bring your system up-to-date, use "zypper patch". Package List: - SUSE Linux Enterprise Server 12-LTSS (ppc64le s390x x86_64): kernel-default-3.12.61-52.119.1 kernel-default-base-3.12.61-52.119.1 kernel-default-base-debuginfo-3.12.61-52.119.1 kernel-default-debuginfo-3.12.61-52.119.1 kernel-default-debugsource-3.12.61-52.119.1 kernel-default-devel-3.12.61-52.119.1 kernel-syms-3.12.61-52.119.1 - SUSE Linux Enterprise Server 12-LTSS (noarch): kernel-devel-3.12.61-52.119.1 kernel-macros-3.12.61-52.119.1 kernel-source-3.12.61-52.119.1 - SUSE Linux Enterprise Server 12-LTSS (x86_64): kernel-xen-3.12.61-52.119.1 kernel-xen-base-3.12.61-52.119.1 kernel-xen-base-debuginfo-3.12.61-52.119.1 kernel-xen-debuginfo-3.12.61-52.119.1 kernel-xen-debugsource-3.12.61-52.119.1 kernel-xen-devel-3.12.61-52.119.1 kgraft-patch-3_12_61-52_119-default-1-1.7.1 kgraft-patch-3_12_61-52_119-xen-1-1.7.1 - SUSE Linux Enterprise Server 12-LTSS (s390x): kernel-default-man-3.12.61-52.119.1 - SUSE Linux Enterprise Module for Public Cloud 12 (x86_64): kernel-ec2-3.12.61-52.119.1 kernel-ec2-debuginfo-3.12.61-52.119.1 kernel-ec2-debugsource-3.12.61-52.119.1 kernel-ec2-devel-3.12.61-52.119.1 kernel-ec2-extra-3.12.61-52.119.1 kernel-ec2-extra-debuginfo-3.12.61-52.119.1

References

#1012382 #1047626 #1068032 #1070623 #1073311

#1073792 #1073874 #1075091 #1075908 #1075994

#1076017 #1076110 #1076154 #1076278 #1077355

#1077560 #1077922 #893777 #893949 #902893

#951638

Cross- CVE-2015-1142857 CVE-2017-13215 CVE-2017-17741

CVE-2017-17805 CVE-2017-17806 CVE-2017-18079

CVE-2017-5715 CVE-2018-1000004

Affected Products:

SUSE Linux Enterprise Server 12-LTSS

SUSE Linux Enterprise Module for Public Cloud 12

https://www.suse.com/security/cve/CVE-2015-1142857.html

https://www.suse.com/security/cve/CVE-2017-13215.html

https://www.suse.com/security/cve/CVE-2017-17741.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-18079.html

https://www.suse.com/security/cve/CVE-2017-5715.html

https://www.suse.com/security/cve/CVE-2018-1000004.html

https://bugzilla.suse.com/1012382

https://bugzilla.suse.com/1047626

https://bugzilla.suse.com/1068032

https://bugzilla.suse.com/1070623

https://bugzilla.suse.com/1073311

https://bugzilla.suse.com/1073792

https://bugzilla.suse.com/1073874

https://bugzilla.suse.com/1075091

https://bugzilla.suse.com/1075908

https://bugzilla.suse.com/1075994

https://bugzilla.suse.com/1076017

https://bugzilla.suse.com/1076110

https://bugzilla.suse.com/1076154

https://bugzilla.suse.com/1076278

https://bugzilla.suse.com/1077355

https://bugzilla.suse.com/1077560

https://bugzilla.suse.com/1077922

https://bugzilla.suse.com/893777

https://bugzilla.suse.com/893949

https://bugzilla.suse.com/902893

https://bugzilla.suse.com/951638

--

Severity
Announcement ID: SUSE-SU-2018:0437-1
Rating: important

Related News