Security update for the Linux Kernel

SUSE Security Update: Security update for the Linux Kernel
Announcement ID: SUSE-SU-2021:3972-1
Rating: important
References: #1087082 #1100416 #1108488 #1129735 #1129898 #1133374 #1153720 #1171420 #1176724 #1176931 #1180624 #1181854 #1181855 #1183050 #1183861 #1184673 #1184804 #1185377 #1185677 #1185726 #1185727 #1185758 #1185973 #1186063 #1186482 #1186483 #1186672 #1188026 #1188172 #1188563 #1188601 #1188613 #1188838 #1188842 #1188876 #1188983 #1188985 #1189057 #1189262 #1189278 #1189291 #1189399 #1189400 #1189418 #1189420 #1189706 #1189846 #1189884 #1190023 #1190025 #1190067 #1190115 #1190117 #1190118 #1190159 #1190276 #1190349 #1190350 #1190351 #1190432 #1190479 #1190534 #1190601 #1190717 #1191193 #1191315 #1191317 #1191318 #1191529 #1191530 #1191628 #1191660 #1191790 #1191801 #1191813 #1191961 #1192036 #1192045 #1192048 #1192267 #1192379 #1192400 #1192444 #1192549 #1192775 #1192781 #1192802
Cross-References:CVE-2018-13405 CVE-2018-9517 CVE-2019-3874 CVE-2019-3900 CVE-2020-0429 CVE-2020-12770 CVE-2020-3702 CVE-2021-0941 CVE-2021-20322 CVE-2021-22543 CVE-2021-31916 CVE-2021-34556 CVE-2021-34981 CVE-2021-3542 CVE-2021-35477 CVE-2021-3640 CVE-2021-3653 CVE-2021-3655 CVE-2021-3656 CVE-2021-3659 CVE-2021-3679 CVE-2021-3715 CVE-2021-37159 CVE-2021-3732 CVE-2021-3744 CVE-2021-3752 CVE-2021-3753 CVE-2021-37576 CVE-2021-3759 CVE-2021-3760 CVE-2021-3764 CVE-2021-3772 CVE-2021-38160 CVE-2021-38198 CVE-2021-38204 CVE-2021-40490 CVE-2021-41864 CVE-2021-42008 CVE-2021-42252 CVE-2021-42739
Affected Products:
  • SUSE OpenStack Cloud Crowbar 9
  • SUSE OpenStack Cloud 9
  • SUSE Linux Enterprise Server for SAP 12-SP4
  • SUSE Linux Enterprise Server 12-SP4-LTSS
  • SUSE Linux Enterprise Live Patching 12-SP4
  • SUSE Linux Enterprise High Availability 12-SP4

An update that solves 40 vulnerabilities and has 47 fixes is now available.

Description:

The SUSE Linux Enterprise 12 SP4 kernel was updated to receive various security and bugfixes.
The following security bugs were fixed:

  • Unprivileged BPF has been disabled by default to reduce attack surface as too many security issues have happened in the past (jsc#SLE-22573)

You can reenable via systemctl setting /proc/sys/kernel/unprivileged_bpf_disabled to 0. (kernel.unprivileged_bpf_disabled = 0)

The following security bugs were fixed:
  • CVE-2021-0941: In bpf_skb_change_head of filter.c, there is a possible out of bounds read due to a use after free. This could lead to local escalation of privilege with System execution privileges needed. User interaction is not needed for exploitation (bnc#1192045).
  • CVE-2021-31916: An out-of-bounds (OOB) memory write flaw was found in list_devices in drivers/md/dm-ioctl.c in the Multi-device driver module in the Linux kernel A bound check failure allowed an attacker with special user (CAP_SYS_ADMIN) privilege to gain access to out-of-bounds memory leading to a system crash or a leak of internal kernel information. The highest threat from this vulnerability is to system availability (bnc#1192781).
  • CVE-2021-20322: Make the ipv4 and ipv6 ICMP exception caches less predictive to avoid information leaks about UDP ports in use. (bsc#1191790)
  • CVE-2021-34981: Fixed file refcounting in cmtp when cmtp_attach_device fails. (bsc#1191961)
  • CVE-2021-3655: Fixed a missing size validations on inbound SCTP packets, which may have allowed the kernel to read uninitialized memory (bsc#1188563).
  • CVE-2021-3715: Fixed a use-after-free in route4_change() in net/sched/cls_route.c (bsc#1190349).
  • CVE-2021-3760: Fixed a use-after-free vulnerability with the ndev->rf_conn_info object (bsc#1190067).
  • CVE-2021-42739: The firewire subsystem had a buffer overflow related to drivers/media/firewire/firedtv-avc.c and drivers/media/firewire/firedtv-ci.c, because avc_ca_pmt mishandled bounds checking (bsc#1184673).
  • CVE-2021-3542: Fixed heap buffer overflow in firedtv driver (bsc#1186063).
  • CVE-2021-42252: Fixed an issue inside aspeed_lpc_ctrl_mmap that could have allowed local attackers to access the Aspeed LPC control interface to overwrite memory in the kernel and potentially execute privileges (bnc#1190479).
  • CVE-2021-41864: Fixed prealloc_elems_and_freelist that allowed unprivileged users to trigger an eBPF multiplication integer overflow with a resultant out-of-bounds write (bnc#1191317).
  • CVE-2021-42008: Fixed a slab out-of-bounds write in the decode_data function in drivers/net/hamradio/6pack.c. Input from a process that had the CAP_NET_ADMIN capability could have lead to root access (bsc#1191315).
  • CVE-2021-37159: Fixed use-after-free and a double free inside hso_free_net_device in drivers/net/usb/hso.c when unregister_netdev is called without checking for the NETREG_REGISTERED state (bnc#1188601).
  • CVE-2020-3702: Fixed a bug which could be triggered with specifically timed and handcrafted traffic and cause internal errors in a WLAN device that lead to improper layer 2 Wi-Fi encryption with a consequent possibility of information disclosure. (bnc#1191193)
  • CVE-2021-3752: Fixed a use after free vulnerability in the Linux kernel's bluetooth module. (bsc#1190023)
  • CVE-2021-40490: Fixed a race condition discovered in the ext4 subsystem that could leat to local priviledge escalation. (bnc#1190159)
  • CVE-2021-3744: Fixed a bug which could allows attackers to cause a denial of service. (bsc#1189884)
  • CVE-2021-3764: Fixed a bug which could allows attackers to cause a denial of service. (bsc#1190534)
  • CVE-2021-3772: Fixed a remote denial of service in the SCTP stack, if the attacker can spoof IP addresses and knows the IP-addresses and port numbers being used (bnc#1190351).
  • CVE-2018-9517: Fixed possible memory corruption due to a use after free in pppol2tp_connect (bsc#1108488).
  • CVE-2019-3874: Fixed possible denial of service attack via SCTP socket buffer used by a userspace applications (bnc#1129898).
  • CVE-2019-3900: Fixed an infinite loop issue while handling incoming packets in handle_rx() (bnc#1133374).
  • CVE-2021-3640: Fixed a Use-After-Free vulnerability in function sco_sock_sendmsg() in the bluetooth stack (bsc#1188172).
  • CVE-2021-3653: Missing validation of the `int_ctl` VMCB field and allows a malicious L1 guest to enable AVIC support for the L2 guest. (bsc#1189399).
  • CVE-2021-3656: Missing validation of the the `virt_ext` VMCB field and allows a malicious L1 guest to disable both VMLOAD/VMSAVE intercepts and VLS for the L2 guest (bsc#1189400).
  • CVE-2021-3679: A lack of CPU resource in tracing module functionality was found in the way user uses trace ring buffer in a specific way. Only privileged local users (with CAP_SYS_ADMIN capability) could use this flaw to starve the resources causing denial of service (bnc#1189057).
  • CVE-2021-3732: Mounting overlayfs inside an unprivileged user namespace can reveal files (bsc#1189706).
  • CVE-2021-3753: Fixed race out-of-bounds in virtual terminal handling (bsc#1190025).
  • CVE-2021-3759: Unaccounted ipc objects in Linux kernel could have lead to breaking memcg limits and DoS attacks (bsc#1190115).
  • CVE-2021-38160: Data corruption or loss could be triggered by an untrusted device that supplies a buf->len value exceeding the buffer size in drivers/char/virtio_console.c (bsc#1190117)
  • CVE-2021-38198: arch/x86/kvm/mmu/paging_tmpl.h incorrectly computes the access permissions of a shadow page, leading to a missing guest protection page fault (bnc#1189262).
  • CVE-2021-38204: drivers/usb/host/max3421-hcd.c allowed physically proximate attackers to cause a denial of service (use-after-free and panic) by removing a MAX-3421 USB device in certain situations (bnc#1189291).
  • CVE-2021-34556: Fixed side-channel attack via a Speculative Store Bypass via unprivileged BPF program that could have obtain sensitive information from kernel memory (bsc#1188983).
  • CVE-2021-35477: Fixed BPF stack frame pointer which could have been abused to disclose content of arbitrary kernel memory (bsc#1188985).
  • CVE-2020-12770: Fixed sg_remove_request call in a certain failure cases (bsc#1171420).
  • CVE-2021-3659: Fixed a NULL pointer dereference in llsec_key_alloc() in net/mac802154/llsec.c (bsc#1188876).
  • CVE-2021-22543: Fixed improper handling of VM_IO|VM_PFNMAP vmas in KVM, which could bypass RO checks and can lead to pages being freed while still accessible by the VMM and guest. This allowed users with the ability to start and control a VM to read/write random pages of memory and can result in local privilege escalation (bsc#1186482).
  • CVE-2021-37576: Fixed an issue on the powerpc platform, where a KVM guest OS user could cause host OS memory corruption via rtas_args.nargs (bsc#1188838).
  • CVE-2020-0429: In l2tp_session_delete and related functions of l2tp_core.c, there is possible memory corruption due to a use after free. This could lead to local escalation of privilege with System execution privileges needed. (bsc#1176724).

The following non-security bugs were fixed:
  • Add arch-dependent support markers in supported.conf (bsc#1186672)
  • Add the support for kernel-FLAVOR-optional subpackage (jsc#SLE-11796)
  • NFS: Do uncached readdir when we're seeking a cookie in an empty page cache (bsc#1191628).
  • PCI: hv: Use expected affinity when unmasking IRQ (bsc#1185973).
  • Use /usr/lib/modules as module dir when usermerge is active in the target distro.
  • UsrMerge the kernel (boo#1184804)
  • bpf: Add kconfig knob for disabling unpriv bpf by default (jsc#SLE-22913)
  • bpf: Disallow unprivileged bpf by default (jsc#SLE-22913).
  • cpufreq: intel_pstate: Add Icelake servers support in no-HWP mode (bsc#1185758,bsc#1192400).
  • drm: fix spectre issue in vmw_execbuf_ioctl (bsc#1192802).
  • drop debugging statements
  • ftrace: Fix scripts/recordmcount.pl due to new binutils (bsc#1192267).
  • gigaset: fix spectre issue in do_data_b3_req (bsc#1192802).
  • handle also race conditions in /proc/net/tcp code
  • hisax: fix spectre issues (bsc#1192802).
  • hv: adjust mana_select_queue to old ndo_select_queue API
  • hv: mana: adjust mana_select_queue to old API (jsc#SLE-18779, bsc#1185727).
  • hv: mana: fake bitmap API (jsc#SLE-18779, bsc#1185726).
  • hv: mana: remove netdev_lockdep_set_classes usage (jsc#SLE-18779, bsc#1185727).
  • hysdn: fix spectre issue in hycapi_send_message (bsc#1192802).
  • infiniband: fix spectre issue in ib_uverbs_write (bsc#1192802).
  • ipc: remove memcg accounting for sops objects in do_semtimedop() (bsc#1190115).
  • iwlwifi: fix spectre issue in iwl_dbgfs_update_pm (bsc#1192802).
  • media: dvb_ca_en50221: prevent using slot_info for Spectre attacs (bsc#1192802).
  • media: dvb_ca_en50221: sanity check slot number from userspace (bsc#1192802).
  • media: wl128x: get rid of a potential spectre issue (bsc#1192802).
  • memcg: enable accounting for file lock caches (bsc#1190115).
  • mm: vmscan: scan anonymous pages on file refaults (VM Performance, bsc#1183050).
  • mpt3sas: fix spectre issues (bsc#1192802).
  • net/mlx4_en: Avoid scheduling restart task if it is already running (bsc#1181854 bsc#1181855).
  • net/mlx4_en: Handle TX error CQE (bsc#1181854 bsc#1181855).
  • net: mana: Add WARN_ON_ONCE in case of CQE read overflow (jsc#SLE-18779, bsc#1185727).
  • net: mana: Add a driver for Microsoft Azure Network Adapter (MANA) (jsc#SLE-18779, bsc#1185727).
  • net: mana: Add support for EQ sharing (jsc#SLE-18779, bsc#1185727).
  • net: mana: Fix a memory leak in an error handling path in (jsc#SLE-18779, bsc#1185727).
  • net: mana: Fix error handling in mana_create_rxq() (git-fixes, bsc#1191801).
  • net: mana: Move NAPI from EQ to CQ (jsc#SLE-18779, bsc#1185727).
  • net: mana: Prefer struct_size over open coded arithmetic (jsc#SLE-18779, bsc#1185727).
  • net: mana: Use int to check the return value of mana_gd_poll_cq() (jsc#SLE-18779, bsc#1185727).
  • net: mana: Use struct_size() in kzalloc() (jsc#SLE-18779, bsc#1185727).
  • net: mana: fix PCI_HYPERV dependency (jsc#SLE-18779, bsc#1185727).
  • net: mana: remove redundant initialization of variable err (jsc#SLE-18779, bsc#1185727).
  • net: sched: sch_teql: fix null-pointer dereference (bsc#1190717).
  • net: sock_diag: Fix spectre v1 gadget in __sock_diag_cmd() (bsc#1192802).
  • net_sched: cls_route: remove the right filter from hashtable (networking-stable-20_03_28).
  • objtool: Do not fail on missing symbol table (bsc#1192379).
  • osst: fix spectre issue in osst_verify_frame (bsc#1192802).
  • ovl: check whiteout in ovl_create_over_whiteout() (bsc#1189846).
  • ovl: filter of trusted xattr results in audit (bsc#1189846).
  • ovl: fix dentry leak in ovl_get_redirect (bsc#1189846).
  • ovl: initialize error in ovl_copy_xattr (bsc#1189846).
  • ovl: relax WARN_ON() on rename to self (bsc#1189846).
  • s390/bpf: Fix 64-bit subtraction of the -0x80000000 constant (bsc#1190601).
  • s390/bpf: Fix branch shortening during codegen pass (bsc#1190601).
  • s390/bpf: Fix optimizing out zero-extensions (bsc#1190601).
  • s390/bpf: Wrap JIT macro parameter usages in parentheses (bsc#1190601).
  • s390/unwind: use current_frame_address() to unwind current task (bsc#1185677).
  • s390/vtime: fix increased steal time accounting (bsc#1183861).
  • s390: bpf: implement jitting of BPF_ALU | BPF_ARSH | BPF_* (bsc#1190601).
  • scripts/git_sort/git_sort.py: add bpf git repo
  • sctp: check asoc peer.asconf_capable before processing asconf (bsc#1190351).
  • sctp: fully initialize v4 addr in some functions (bsc#1188563).
  • sysvipc/sem: mitigate semnum index against spectre v1 (bsc#1192802).
  • x86/CPU: Add more Icelake model numbers (bsc#1185758,bsc#1192400).
  • x86/debug: Extend the lower bound of crash kernel low reservations (bsc#1153720).
  • xfrm: xfrm_state_mtu should return at least 1280 for ipv6 (bsc#1185377).

Special Instructions and Notes:

Please reboot the system after installing this update.

Patch Instructions:

To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or "zypper patch".
Alternatively you can run the command listed for your product:

  • SUSE OpenStack Cloud Crowbar 9:
    zypper in -t patch SUSE-OpenStack-Cloud-Crowbar-9-2021-3972=1
  • SUSE OpenStack Cloud 9:
    zypper in -t patch SUSE-OpenStack-Cloud-9-2021-3972=1
  • SUSE Linux Enterprise Server for SAP 12-SP4:
    zypper in -t patch SUSE-SLE-SAP-12-SP4-2021-3972=1
  • SUSE Linux Enterprise Server 12-SP4-LTSS:
    zypper in -t patch SUSE-SLE-SERVER-12-SP4-LTSS-2021-3972=1
  • SUSE Linux Enterprise Live Patching 12-SP4:
    zypper in -t patch SUSE-SLE-Live-Patching-12-SP4-2021-3972=1
  • SUSE Linux Enterprise High Availability 12-SP4:
    zypper in -t patch SUSE-SLE-HA-12-SP4-2021-3972=1

Package List:

  • SUSE OpenStack Cloud Crowbar 9 (x86_64):
    • kernel-default-4.12.14-95.83.2
    • kernel-default-base-4.12.14-95.83.2
    • kernel-default-base-debuginfo-4.12.14-95.83.2
    • kernel-default-debuginfo-4.12.14-95.83.2
    • kernel-default-debugsource-4.12.14-95.83.2
    • kernel-default-devel-4.12.14-95.83.2
    • kernel-default-devel-debuginfo-4.12.14-95.83.2
    • kernel-syms-4.12.14-95.83.2
  • SUSE OpenStack Cloud Crowbar 9 (noarch):
    • kernel-devel-4.12.14-95.83.2
    • kernel-macros-4.12.14-95.83.2
    • kernel-source-4.12.14-95.83.2
  • SUSE OpenStack Cloud 9 (noarch):
    • kernel-devel-4.12.14-95.83.2
    • kernel-macros-4.12.14-95.83.2
    • kernel-source-4.12.14-95.83.2
  • SUSE OpenStack Cloud 9 (x86_64):
    • kernel-default-4.12.14-95.83.2
    • kernel-default-base-4.12.14-95.83.2
    • kernel-default-base-debuginfo-4.12.14-95.83.2
    • kernel-default-debuginfo-4.12.14-95.83.2
    • kernel-default-debugsource-4.12.14-95.83.2
    • kernel-default-devel-4.12.14-95.83.2
    • kernel-default-devel-debuginfo-4.12.14-95.83.2
    • kernel-syms-4.12.14-95.83.2
  • SUSE Linux Enterprise Server for SAP 12-SP4 (ppc64le x86_64):
    • kernel-default-4.12.14-95.83.2
    • kernel-default-base-4.12.14-95.83.2
    • kernel-default-base-debuginfo-4.12.14-95.83.2
    • kernel-default-debuginfo-4.12.14-95.83.2
    • kernel-default-debugsource-4.12.14-95.83.2
    • kernel-default-devel-4.12.14-95.83.2
    • kernel-syms-4.12.14-95.83.2
  • SUSE Linux Enterprise Server for SAP 12-SP4 (noarch):
    • kernel-devel-4.12.14-95.83.2
    • kernel-macros-4.12.14-95.83.2
    • kernel-source-4.12.14-95.83.2
  • SUSE Linux Enterprise Server for SAP 12-SP4 (x86_64):
    • kernel-default-devel-debuginfo-4.12.14-95.83.2
  • SUSE Linux Enterprise Server 12-SP4-LTSS (aarch64 ppc64le s390x x86_64):
    • kernel-default-4.12.14-95.83.2
    • kernel-default-base-4.12.14-95.83.2
    • kernel-default-base-debuginfo-4.12.14-95.83.2
    • kernel-default-debuginfo-4.12.14-95.83.2
    • kernel-default-debugsource-4.12.14-95.83.2
    • kernel-default-devel-4.12.14-95.83.2
    • kernel-syms-4.12.14-95.83.2
  • SUSE Linux Enterprise Server 12-SP4-LTSS (x86_64):
    • kernel-default-devel-debuginfo-4.12.14-95.83.2
  • SUSE Linux Enterprise Server 12-SP4-LTSS (noarch):
    • kernel-devel-4.12.14-95.83.2
    • kernel-macros-4.12.14-95.83.2
    • kernel-source-4.12.14-95.83.2
  • SUSE Linux Enterprise Server 12-SP4-LTSS (s390x):
    • kernel-default-man-4.12.14-95.83.2
  • SUSE Linux Enterprise Live Patching 12-SP4 (ppc64le s390x x86_64):
    • kernel-default-kgraft-4.12.14-95.83.2
    • kernel-default-kgraft-devel-4.12.14-95.83.2
    • kgraft-patch-4_12_14-95_83-default-1-6.3.1
  • SUSE Linux Enterprise High Availability 12-SP4 (ppc64le s390x x86_64):
    • cluster-md-kmp-default-4.12.14-95.83.2
    • cluster-md-kmp-default-debuginfo-4.12.14-95.83.2
    • dlm-kmp-default-4.12.14-95.83.2
    • dlm-kmp-default-debuginfo-4.12.14-95.83.2
    • gfs2-kmp-default-4.12.14-95.83.2
    • gfs2-kmp-default-debuginfo-4.12.14-95.83.2
    • kernel-default-debuginfo-4.12.14-95.83.2
    • kernel-default-debugsource-4.12.14-95.83.2
    • ocfs2-kmp-default-4.12.14-95.83.2
    • ocfs2-kmp-default-debuginfo-4.12.14-95.83.2

References: