NFS v4: potential memory corruption on the client system when processing security attributes.
It was discovered that a buffer overflow and memory corruption were possible if a system tried to mount an NFS v4 share where the files had security labels in the file attributes. An attacker would need to control the NFS server and make it send a specific series of responses to trigger the issue. The issue allows the attacker to crash the kernel on the client system or, potentially, escalate their privileges there.
netfilter: kernel crash due to a buffer overflow in ctnetlink_parse_tuple_filter().
It was discovered that a local attacker could pass a specially crafted configuration of conntrack to the kernel to cause a buffer overflow in ctnetlink_parse_tuple_filter() function. As a result, the kernel could crash.
Potential kernel crash (use-after-free) in the implementation of usermode helpers.
A race condition was discovered in the implementation of usermode helpers in the kernel. An attacker could exploit it from a container to cause a denial-of-service (kernel crash due to a use-after-free), or, potentially, to escalate their privileges in the system.
nf_tables: kernel crash in nf_tables_getset().
It was discovered that the implementation of nf_tables did not properly validate certain parameters. An attacker could exploit this from a container to cause a kernel crash: NULL pointer dereference or a general protection fault in nf_tables_getset().
nfnetlink: potential kernel crash (skb_over_panic) in skb_put().
It was discovered that nfnetlink subsystem did not properly validate certain messages. An attacker could exploit this from a container to cause a kernel crash: skb_over_panic in skb_put().
nf_conntrack: potential kernel crash in nf_ct_gre_keymap_destroy().
File system of a container becomes read-only, __ext4_handle_dirty_metadata() reports error 28.
memcg: kernel crash in memcg_destroy_kmem_caches() caused by unbalanced css_tryget/css_put operations.
af_packet: potential soft lockup in case of certain errors when using TPACKET_V3.
It was found that if TPACKET_V3 was used and the kernel failed to obtain certain settings from a relevant network device, the retirement timer could be set incorrectly in the implementation AF_PACKET protocol. This could result in soft lockups and excessive CPU usage.
netlabel: kernel crash (null pointer dereference) while processing a specially crafted CIPSO packet.
A NULL pointer dereference was found in the implementation of SELinux. The issue occurs while importing the Commercial IP Security Option (CIPSO) protocol category bitmap into SELinux extensible bitmap. Parsing of a specially crafted CIPSO packet sent by a remote attacker could lead to a kernel crash (remote DoS).
Core dumps of some processes could contain uninitialized kernel data.
It was discovered that core dumps of userspace processes could contain copies of uninitialized kernel memory areas in certain cases. Although it is difficult for an attacker to control what data is in these areas, this issue, in theory, could be used to obtain sensitive information from the kernel.
crypto/authenc: kernel crash in crypto_ahash_setkey() when payload of a key is longer than 4 bytes and is not aligned.
An out-of-bounds read was found in the implementation of IPsec cryptographic algorithms ('authenc' module). When payload of a key was longer than 4 bytes but was not properly aligned, crypto_authenc_extractkeys() function could try to read data from a wrong location. This could lead to a kernel crash in crypto_ahash_setkey().
ploop: kernel crash (division by zero) in purge_lru_warn().
Denial of service by corrupting mountpoint reference counter.
It was discovered that a race condition was possible between pivot_root() and put_mountpoint() operations. A local unprivileged attacker could exploit this to corrupt mountpoint reference counter and cause a denial of service (kernel crash).
ext4: use-after-free when unmounting a corrupted file system with files that have no links.
futex: potential system hang due to a missing unlock operation in the error path of futex_wait_requeue_pi().
cbt: potential endless loops in the error paths.
netfilter: potential memory corruption caused by a helper from nf_conntrack_h323 module.
nf_conntrack: potential kernel crash in netlink_has_listeners().
Use-after-free read in napi_gro_frags().
A flaw was found in the implementation of GRO, which allows an attacker with local access to trigger a use-after-free read in napi_gro_frags() and, potentially, crash the system.
i40iw: kernel complains about failed RTNL assertion in i40iw_addr_resolve_neigh().
nfsd: memory corruption in nfsd4_lock().
netfilter: kernel crash in the implementation of nf_tables due to use-after-free in dynamic operations.
A container with NFS server could force other such containers to use the older NFSv4 client tracker, which slows down NFS mounts.
mpt2sas: scheduling while atomic in _scsih_io_done().
ext4: a race between online resizing and write operations could lead to kernel crashes or data corruption.
Potential leak of a reference counter for a memory cgroup in memcg_expand_shrinker_maps().
Potential corruption of ploop images due to a race between the truncation thread and resize operations.
xfs: potential denial of service caused by missing unlock operation in xfs_setattr_nonsize().
It was discovered that xfs_setattr_nonsize() would not unlock 'ILOCK' lock if the user or group were out of their disk quota. As a result, any subsequent operation, which needed to take 'ILOCK', would get stuck, leading to a denial of service.
nf_tables: kernel crash in nft_rbtree_lookup().
Kernel crash due to out-of-bounds memory accesses in process_vm_readv().
It was discovered that the implementation of process_vm_readv() system call could try to access memory outside of the structures it was processing in certain cases. A local unprivileged user could use this vulnerability to crash the system.
Use-after-free in fs/xfs/xfs_super.c.
A flaw was found in the implementation of XFS filesystem where a key data structure (sb->s_fs_info) may not be de-allocated properly when the system is under memory pressure. This could allow a local attacker to create a use-after-free situation which can result in memory corruption or, potentially, privilege escalation.
scsi: printing lots of messages about rejected I/O causes a hard lockup and a kernel crash.
Potential kernel crash in __radix_tree_insert() when fscache is used for NFS mounts.
sunrpc: potential kernel crash in bc_svc_process().
Kernel crash in the implementation of epoll_ctl system call.
Kernel crash in __generic_splice_read().
KVM: Out-of-bounds memory access via MMIO ring buffer.
An issue was found in the implementation of the coalesced MMIO write operation in KVM. The indices used to access an MMIO ring buffer could be supplied by a user-space process in the host system. An attacker with access to /dev/kvm could use this flaw to trigger out-of-bounds memory access and crash the host kernel or, potentially, escalate their privileges.
Potential kernel crash in __tcp_retransmit_skb().
It was discovered that a local unprivileged attacker could use a specially crafted sequence of system calls to trigger either a kernel crash in __tcp_retransmit_skb() or use-after-free conditions, which could result in privilege escalation.
Certain operations with iptables in a container may crash the kernel.
A container that tries to mount NFS shares may cause the whole system to hang in certain conditions.
tun: potential kernel crash when TUNSETIFF ioctl operation is used for a device with an invalid name.
Use-after-free in __blk_drain_queue() function.
It was found that a use-after-free condition could be triggered in the block device subsystem while the outstanding command queue was drained. A patient local attacker can use this flaw to crash the system or, potentially, to escalate their privileges.
sunrpc: kernel crash in svcauth_unix_set_client().
Data corruption in the EXT4 file system when truncating the extent index blocks.
Kernel complained about busy inodes after unmount of NFS shares and crashed in certain cases.
memcg: race condition between reparenting and kmem uncharging.
It was discovered that a race condition was possible between kmem uncharging and mem_cgroup_reparent_charges(). A kernel warning would be triggered as a result.
Kernel crashed in down_read() when a FUSE file system was exported via NFS.
vhost-net: guest to host kernel escape during migration
A buffer overflow vulnerability was found in the networking virtualization functionality (vhost-net) that could be abused during live migration of virtual machines. A privileged guest user may pass descriptors with invalid length to the host when live migration is underway to crash the host kernel or, potentially, escalate their privileges on the host.
infiniband: use-after-free in ucma_leave_multicast().
It was found that ucma_leave_multicast() function from 'rdma_ucm' module could try to access a certain data structure after the structure had been freed. This allows an attacker to induce kernel memory corruption, leading to a system crash or other unspecified impact.
megaraid_sas: potential kernel crash due to a NULL pointer dereference in megasas_free_cmds().
A flaw was found in 'megaraid_sas' kernel module. NULL pointer dereference can occur in megasas_free_cmds() function due incorrect error handling in megasas_alloc_cmds(). An attacker could exploit this to trigger a kernel crash.
Page cache side channel attacks via mincore().
It was discovered that a local attacker could exploit mincore() system call to obtain information about memory pages of the running applications from the page cache even if the contents of these memory pages were not available to the attacker.
The warning in mem_cgroup_reparent_charges() was triggered too early and too often in certain cases.
kvm: potential system hang due to an error in mmu_shrink_scan().
nfs: NULL pointer dereference due to an anomalized NFS message sequence.
An attacker, who is able to mount an exported NFS filesystem, is able to trigger a null pointer dereference by using an invalid NFS sequence. This can panic the machine and deny access to the NFS server. Any outstanding disk writes to the NFS server will be lost.
fuse_kio_pcs: kernel crash in pcs_sockio_xmit().
Processes could get stuck in copy_net_ns() forever.
vziolimit: kernel crash due to a division by zero in throttle_charge().
mem_cgroup_reparent_charges() could get stuck while holding cgroup_mutex and make the whole system hang.
kvm: inefficient memory shrinking for VMs.
It was discovered that a node with dozens of CPU cores, lots of RAM and many VMs running could get into a situation when almost all CPU cores were busy in mmu_shrink_scan(). This could happen because memory shrinking was done under kvm_lock spinlock and only for one VM at a time. All CPU cores but one just waited for kvm_lock in such cases, while the last one was busy with the actual memory shrinking for a VM.
fuse_kio_pcs: latency was calculated incorrectly.
It was found that the in-kernel implementation of Virtuozzo Storage client stored latency values in milliseconds rather than in microseconds, resulting in bogus statistics data.
tcp: integer overflow while processing SACK blocks allows remote denial of service.
An integer overflow was found in the way the Linux kernel's networking subsystem processed TCP Selective Acknowledgment (SACK) segments. While processing SACK segments, the Linux kernel's socket buffer (SKB) data structure becomes fragmented. Each fragment is about TCP maximum segment size (MSS) bytes. To efficiently process SACK blocks, the Linux kernel merges multiple fragmented SKBs into one, potentially overflowing the variable holding the number of segments. A remote attacker could use this flaw to crash the Linux kernel by sending a crafted sequence of SACK segments on a TCP connection with small value of TCP MSS, resulting in a denial of service.
Processes could hang while closing a file located on the storage cluster.
OOM killer would kill tasks from cgroups without memory guarantees first.
If the amount of free memory is low, OOM killer would kill the tasks from cgroups without memory guarantees first. However, it seems more reasonable to kill the tasks from cgroups exceeding their guarantees the most.
virtio_scsi: a race condition in the Linux block layer could cause certain I/O requests to hang.
ploop: kernel crash in ploop_congested().
ext4: inode tables created during online resize were not zeroed.
It was discovered that inode tables created during online resize of an ext4 filesystem were not zeroed after that. This could potentially result in lower performance of the filesystem.
Windows Server 2016 Essentials failed to install into a QEMU VM with disabled PMU.
It was found that if no PMU counters were exposed to guest, KVM skipped the whole remaining PMU-related initialization, including filling of LBR-related data. As it turned out, Windows Server 2016 Essentials tried to access these data during the installation and failed to install as a result.
ploop: 'pcompact' could hang if run simultaneously with 'ploop-balloon status'
Memory leak in the implementation of IPv4 routing.
It was discovered that a certain sequence of operations related to IPv4 routing could trigger a kernel memory leak. An attacker could potentially exploit that from a container to cause a denial of service.
KVM: potential use-after-free via kvm_ioctl_create_device().
A use-after-free vulnerability was found in the way KVM implements its device control API. When a device is created via kvm_ioctl_create_device(), it holds a reference to a VM object. This reference is transferred to file descriptor table of the caller. If such file descriptor was closed, reference count to the VM object could become zero, which could lead to a use-after-free issue. A user/process could use this flaw to crash the guest VM resulting in a denial of service or, potentially, gain privileged access to a system.
KVM: use-after-free in the emulation of the preemption timer for the L2 guest systems.
A use-after-free vulnerability was found in the way KVM emulates a preemption timer for L2 guests when nested virtualization is enabled. A guest user/process could use this flaw to crash the host kernel resulting in a denial of service or, potentially, gain privileged access to a system.
I/O errors were reported after a successful replacement of the ploop images.
'ploop replace' did not clear 'abort' flag.
It was found that if a ploop image was revoked and then replaced using 'ploop replace', 'abort' flag was not cleared. As a result, subsequent I/O operations would fail.
ploop: potential data corruption due to a race between 'prepare_merge' and 'submit_alloc' operations.
vzstat shows incorrect per-CT scheduling latency (MLAT).
High order page allocations were made in neigh_probe() in certain cases.
High order page allocations were triggered by CRIU while restoring TCP sockets.
Network performance issues due to the usage of pfmemalloc reserves.
It was discovered that network drivers could allocate memory for the socket buffers from pfmemalloc memory reserves, even when it was unnecessary. As a result, the network packets were dropped by sk_filter_trim_cap() causing performance issues.
fuse_kio_pcs: kernel crash in process_pcs_init_reply() caused by a double free.
fuse_kio_pcs: kernel crash in kpcs_kill_requests().
skb drops due to the usage of pfmemalloc reserves were difficult to debug.
Additional diagnostics was introduced to make it easier to detect and analyze skb drops due to the usage of pfmemalloc reserves.
KVM did not update CPUID bits OSXSAVE and OSPKE in some cases.
It was discovered that CPUID bits OSXSAVE and OSPKE were not updated properly by KVM when the guest system rebooted. As a result, the guest system could crash.
The per-container limit on the network interfaces was too low for Docker in some cases.
It was discovered that Docker running inside a Virtuozzo container could hit the limit on the network interfaces (256) when it tried to start 50+ its containers. This fix allows changing that limit for the running containers and increases the default limit to 1024.
txqueuelen could not be changed via SIOCSIFTXQLEN ioctl on the host.
Kernel crash in ext4_clear_inode().
A large tarball with a lot of small files can fail to unpack inside a container if kmem limit is set.
It was found that unpacking a large tarball with a lot of small files could fail inside a container. This could happen because kmem limit was hit prematurely, while reclaimable memory was still available.
sr_mod: kernel crash in sr_block_revalidate_disk().