SUSE-SU-2018:0115-1

See a problem?
Import Source
https://ftp.suse.com/pub/projects/security/osv/SUSE-SU-2018:0115-1.json
JSON Data
https://api.osv.dev/v1/vulns/SUSE-SU-2018:0115-1
Related
Published
2018-01-16T16:22:02Z
Modified
2018-01-16T16:22:02Z
Summary
Security update for the Linux Kernel
Details

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

This update adds mitigations for various side channel attacks against modern CPUs that could disclose content of otherwise unreadable memory (bnc#1068032).

  • CVE-2017-5753 / 'SpectreAttack': Local attackers on systems with modern CPUs featuring deep instruction pipelining could use attacker controllable speculative execution over code patterns in the Linux Kernel to leak content from otherwise not readable memory in the same address space, allowing retrieval of passwords, cryptographic keys and other secrets.

    This problem is mitigated by adding speculative fencing on affected code paths throughout the Linux kernel.

    This issue is addressed for the x86_64, the IBM Power and IBM zSeries architecture.

  • CVE-2017-5715 / 'SpectreAttack': Local attackers on systems with modern CPUs featuring branch prediction could use mispredicted branches to speculatively execute code patterns that in turn could be made to leak other non-readable content in the same address space, an attack similar to CVE-2017-5753.

    This problem is mitigated by disabling predictive branches, depending on CPU architecture either by firmware updates and/or fixes in the user-kernel privilege boundaries.

    This is done with help of Linux Kernel fixes on the Intel/AMD x8664 and IBM zSeries architectures. On x8664, this requires also updates of the CPU microcode packages, delivered in seperate updates.

    For IBM Power and zSeries the required firmware updates are supplied over regular channels by IBM.

    As this feature can have a performance impact, it can be disabled using the 'nospec' kernel commandline option.

  • CVE-2017-5754 / 'MeltdownAttack': Local attackers on systems with modern CPUs featuring deep instruction pipelining could use code patterns in userspace to speculative executive code that would read otherwise read protected memory, an attack similar to CVE-2017-5753.

    This problem is mitigated by unmapping the Linux Kernel from the user address space during user code execution, following a approach called 'KAISER'. The terms used here are 'KAISER' / 'Kernel Address Isolation' and 'PTI' / 'Page Table Isolation'.

    This update does this on the x86_64 architecture, it is not required on the IBM zSeries architecture.

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

The following security bugs were fixed:

  • CVE-2017-15868: The bnepaddconnection 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 (dm04lme2510frontendattach versus dm04lme2510_tuner) (bnc#1066569).
  • CVE-2017-17558: The usbdestroyconfiguration 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/xtosf.c in the Linux kernel did not require the CAPNETADMIN capability for addcallback and removecallback operations, which allowed local users to bypass intended access restrictions because the xtosf_fingers data structure is shared across all net namespaces (bnc#1071695).
  • CVE-2017-17449: The _netlinkdelivertapskb function in net/netlink/afnetlink.c in the Linux kernel through 4.14.4, when CONFIGNLMON is enabled, did not restrict observations of Netlink messages to a single net namespace, which allowed local users to obtain sensitive information by leveraging the CAPNETADMIN capability to sniff an nlmon interface for all Netlink activity on the system (bnc#1071694).
  • CVE-2017-17448: net/netfilter/nfnetlinkcthelper.c in the Linux kernel did not require the CAPNETADMIN capability for new, get, and del operations, which allowed local users to bypass intended access restrictions because the nfnlcthelper_list data structure is shared across all net namespaces (bnc#1071693).
  • CVE-2017-8824: The dccpdisconnect 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 AFUNSPEC connect system call during the DCCP_LISTEN state (bnc#1070771).
  • CVE-2017-15115: The sctpdopeeloff function in net/sctp/socket.c in the Linux kernel did not check whether the intended netns is used in a peel-off action, which allowed local users to cause a denial of service (use-after-free and system crash) or possibly have unspecified other impact via crafted system calls (bnc#1068671).
  • CVE-2017-11600: net/xfrm/xfrmpolicy.c in the Linux kernel through 4.12.3, when CONFIGXFRMMIGRATE is enabled, did not ensure that the dir value of xfrmuserpolicyid is XFRMPOLICYMAX or less, which allowed local users to cause a denial of service (out-of-bounds access) or possibly have unspecified other impact via an XFRMMSG_MIGRATE xfrm Netlink message (bnc#1050231).
  • CVE-2017-16534: The cdcparsecdc_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:

  • kvm: svm: Do not intercept new speculative control MSRs (bsc#1068032).
  • audit: Fix use after free in auditremovewatch_rule() (bsc#1045205).
  • bpf: prevent speculative execution in eBPF interpreter (bnc#1068032).
  • carl9170: prevent speculative execution (bnc#1068032).
  • fs: prevent speculative execution (bnc#1068032).
  • kaiser: make kernel_stack user-mapped
  • kvm: x86: Add speculative control CPUID support for guests (bsc#1068032).
  • locking/barriers: introduce new memory barrier gmb() (bnc#1068032).
  • p54: prevent speculative execution (bnc#1068032).
  • powerpc/barrier: add gmb.
  • powerpc: Convert cmp to cmpd in idle enter sequence (bsc#1070781).
  • powerpc/vdso64: Use double word compare on pointers (bsc#1070781). Conflicts: series.conf
  • ptrace: Add a new thread access check (bsc#1068032).
  • s390: introduce CPU alternatives (bsc#1068032).
  • s390/spinlock: add gmb memory barrier.
  • s390/spinlock: add ppa to system call path.
  • uas: Only complain about missing sg if all other checks succeed (bsc#1071074).
  • udf: prevent speculative execution (bnc#1068032).
  • usb: uas: fix bug in handling of alternate settings (bsc#1071074).
  • uvcvideo: prevent speculative execution (bnc#1068032).
  • x86/CPU/AMD: Add speculative control support for AMD (bsc#1068032).
  • x86/CPU/AMD: Make the LFENCE instruction serialized (bsc#1068032).
  • x86/CPU/AMD: Remove now unused definition of MFENCE_RDTSC feature (bsc#1068032).
  • x86/CPU: Check speculation control CPUID bit (bsc#1068032).
  • x86/enter: Add macros to set/clear IBRS and set IBPB (bsc#1068032).
  • x86/entry: Add a function to overwrite the RSB (bsc#1068032).
  • x86/entry: Stuff RSB for entry to kernel for non-SMEP platform (bsc#1068032).
  • x86/entry: Use IBRS on entry to kernel space (bsc#1068032).
  • x86/feature: Enable the x86 feature to control Speculation (bsc#1068032).
  • x86/idle: Disable IBRS when offlining a CPU and re-enable on wakeup (bsc#1068032).
  • x86/idle: Toggle IBRS when going idle (bsc#1068032).
  • x86/kaiser: Move feature detection up (bsc#1068032).
  • x86/kvm: Add MSRIA32SPECCTRL and MSRIA32PREDCMD to kvm (bsc#1068032).
  • x86/kvm: Flush IBP when switching VMs (bsc#1068032).
  • x86/kvm: Pad RSB on VM transition (bsc#1068032).
  • x86/kvm: Toggle IBRS on VM entry and exit (bsc#1068032).
  • x86/microcode/AMD: Add support for fam17h microcode loading (bsc#1068032).
  • x86/mm: Only set IBPB when the new thread cannot ptrace current thread (bsc#1068032).
  • x86/mm: Set IBPB upon context switch (bsc#1068032).
  • x86/MSR: Move native_*msr(.. u64) to msr.h (bsc#1068032).
  • x86/spec: Add IBRS control functions (bsc#1068032).
  • x86/spec: Add 'nospec' chicken bit (bsc#1068032).
  • x86/spec: Check CPUID direclty post microcode reload to support IBPB feature (bsc#1068032).
  • x86/spec_ctrl: Add an Indirect Branch Predictor barrier (bsc#1068032).
  • x86/spec_ctrl: Check whether IBPB is enabled before using it (bsc#1068032).
  • x86/spec_ctrl: Check whether IBRS is enabled before using it (bsc#1068032).
  • x86/svm: Add code to clear registers on VM exit (bsc#1068032).
  • x86/svm: Clobber the RSB on VM exit (bsc#1068032).
  • x86/svm: Set IBPB when running a different VCPU (bsc#1068032).
  • x86/svm: Set IBRS value on VM entry and exit (bsc#1068032).
References

Affected packages

SUSE:Linux Enterprise Module for Public Cloud 12 / kernel-ec2

Package

Name
kernel-ec2
Purl
purl:rpm/suse/kernel-ec2&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Public%20Cloud%2012

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
3.12.61-52.111.1

Ecosystem specific

{
    "binaries": [
        {
            "kernel-ec2-extra": "3.12.61-52.111.1",
            "kernel-ec2": "3.12.61-52.111.1",
            "kernel-ec2-devel": "3.12.61-52.111.1"
        }
    ]
}

SUSE:Linux Enterprise Server 12-LTSS / kernel-default

Package

Name
kernel-default
Purl
purl:rpm/suse/kernel-default&distro=SUSE%20Linux%20Enterprise%20Server%2012-LTSS

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
3.12.61-52.111.1

Ecosystem specific

{
    "binaries": [
        {
            "kernel-macros": "3.12.61-52.111.1",
            "kernel-devel": "3.12.61-52.111.1",
            "kernel-default-base": "3.12.61-52.111.1",
            "kernel-default-man": "3.12.61-52.111.1",
            "kernel-xen-devel": "3.12.61-52.111.1",
            "kernel-default": "3.12.61-52.111.1",
            "kernel-source": "3.12.61-52.111.1",
            "kernel-xen-base": "3.12.61-52.111.1",
            "kernel-syms": "3.12.61-52.111.1",
            "kernel-default-devel": "3.12.61-52.111.1",
            "kernel-xen": "3.12.61-52.111.1"
        }
    ]
}

SUSE:Linux Enterprise Server 12-LTSS / kernel-source

Package

Name
kernel-source
Purl
purl:rpm/suse/kernel-source&distro=SUSE%20Linux%20Enterprise%20Server%2012-LTSS

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
3.12.61-52.111.1

Ecosystem specific

{
    "binaries": [
        {
            "kernel-macros": "3.12.61-52.111.1",
            "kernel-devel": "3.12.61-52.111.1",
            "kernel-default-base": "3.12.61-52.111.1",
            "kernel-default-man": "3.12.61-52.111.1",
            "kernel-xen-devel": "3.12.61-52.111.1",
            "kernel-default": "3.12.61-52.111.1",
            "kernel-source": "3.12.61-52.111.1",
            "kernel-xen-base": "3.12.61-52.111.1",
            "kernel-syms": "3.12.61-52.111.1",
            "kernel-default-devel": "3.12.61-52.111.1",
            "kernel-xen": "3.12.61-52.111.1"
        }
    ]
}

SUSE:Linux Enterprise Server 12-LTSS / kernel-syms

Package

Name
kernel-syms
Purl
purl:rpm/suse/kernel-syms&distro=SUSE%20Linux%20Enterprise%20Server%2012-LTSS

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
3.12.61-52.111.1

Ecosystem specific

{
    "binaries": [
        {
            "kernel-macros": "3.12.61-52.111.1",
            "kernel-devel": "3.12.61-52.111.1",
            "kernel-default-base": "3.12.61-52.111.1",
            "kernel-default-man": "3.12.61-52.111.1",
            "kernel-xen-devel": "3.12.61-52.111.1",
            "kernel-default": "3.12.61-52.111.1",
            "kernel-source": "3.12.61-52.111.1",
            "kernel-xen-base": "3.12.61-52.111.1",
            "kernel-syms": "3.12.61-52.111.1",
            "kernel-default-devel": "3.12.61-52.111.1",
            "kernel-xen": "3.12.61-52.111.1"
        }
    ]
}

SUSE:Linux Enterprise Server 12-LTSS / kernel-xen

Package

Name
kernel-xen
Purl
purl:rpm/suse/kernel-xen&distro=SUSE%20Linux%20Enterprise%20Server%2012-LTSS

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
3.12.61-52.111.1

Ecosystem specific

{
    "binaries": [
        {
            "kernel-macros": "3.12.61-52.111.1",
            "kernel-devel": "3.12.61-52.111.1",
            "kernel-default-base": "3.12.61-52.111.1",
            "kernel-default-man": "3.12.61-52.111.1",
            "kernel-xen-devel": "3.12.61-52.111.1",
            "kernel-default": "3.12.61-52.111.1",
            "kernel-source": "3.12.61-52.111.1",
            "kernel-xen-base": "3.12.61-52.111.1",
            "kernel-syms": "3.12.61-52.111.1",
            "kernel-default-devel": "3.12.61-52.111.1",
            "kernel-xen": "3.12.61-52.111.1"
        }
    ]
}