Improper locking in libvirt - CVE-2021-4147

 

Improper locking in libvirt - CVE-2021-4147

Published: May 3, 2022


Vulnerability identifier: #VU62737
CSH Severity: Low
CVSS v4: 6.7 [CVSS:4.0/AV:L/AC:L/AT:N/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N]
CVE-ID: CVE-2021-4147
CWE-ID: CWE-667
Exploitation vector: Local access
Exploit availability: No public exploit available

Vulnerability details

The vulnerability allows a local user to perform a denial of service attack (DoS) on the target system.

The vulnerability exists due to double-locking error in the libvirt libxl driver in libxl/libxl_domain.c. A malicious guest can continuously reboot itself and cause libvirtd on the host to deadlock or crash, resulting in a denial of service condition


Affected software

libvirt
SUSE CaaS Platform
SUSE Manager Proxy
SUSE Manager Retail Branch Server
SUSE Manager Server
SUSE MicroOS
SUSE Enterprise Storage
SUSE OpenStack Cloud Crowbar
SUSE OpenStack Cloud
HPE Helion Openstack
SUSE Linux Enterprise Server for SAP
SUSE Linux Enterprise Server
SUSE Linux Enterprise Software Development Kit
SUSE Linux Enterprise High Performance Computing
SUSE Linux Enterprise Realtime Extension
SUSE Linux Enterprise Module for Basesystem
SUSE Linux Enterprise Module for Server Applications
Ubuntu
libvirt-client-debuginfo
libvirt-daemon-driver-nodedev
libvirt-daemon-driver-network-debuginfo
libvirt-daemon-driver-network
libvirt-daemon-driver-lxc-debuginfo
libvirt-daemon-driver-lxc
libvirt-daemon-driver-libxl-debuginfo
libvirt-daemon-driver-libxl
libvirt-daemon-driver-interface-debuginfo
libvirt-daemon-driver-interface
libvirt-daemon-debuginfo
libvirt-daemon-config-nwfilter
libvirt-daemon-config-network
libvirt-daemon
libvirt-daemon-qemu
libvirt-client
libvirt-admin-debuginfo
libvirt-admin
libvirt
libvirt-nss-debuginfo
libvirt-nss
libvirt-lock-sanlock-debuginfo
libvirt-lock-sanlock
libvirt-libs-debuginfo
libvirt-libs
libvirt-doc
libvirt-debugsource
libvirt-daemon-xen
libvirt-daemon-driver-nwfilter
libvirt-daemon-lxc
libvirt-daemon-hooks
libvirt-daemon-driver-storage-scsi-debuginfo
libvirt-daemon-driver-storage-scsi
libvirt-daemon-driver-storage-rbd-debuginfo
libvirt-daemon-driver-storage-rbd
libvirt-daemon-driver-storage-mpath-debuginfo
libvirt-daemon-driver-storage-mpath
libvirt-daemon-driver-storage-logical-debuginfo
libvirt-daemon-driver-storage-logical
libvirt-daemon-driver-storage-iscsi-debuginfo
libvirt-daemon-driver-storage-disk-debuginfo
libvirt-daemon-driver-storage-disk
libvirt-daemon-driver-storage-core-debuginfo
libvirt-daemon-driver-storage-core
libvirt-daemon-driver-storage
libvirt-daemon-driver-secret-debuginfo
libvirt-daemon-driver-nodedev-debuginfo
libvirt-daemon-driver-secret
libvirt-daemon-driver-storage-iscsi
libvirt-daemon-driver-qemu-debuginfo
libvirt-daemon-driver-qemu
libvirt-daemon-driver-nwfilter-debuginfo
libvirt0 (Ubuntu package)
libvirt-daemon (Ubuntu package)
libvirt-daemon-system (Ubuntu package)
libvirt-devel
libvirt-bash-completion
libvirt-daemon-driver-storage-iscsi-direct
libvirt-daemon-driver-storage-iscsi-direct-debuginfo

How to mitigate CVE-2021-4147

Install updates from vendor's website.

libvirt - update to 2.33.0
libvirt-client-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-nodedev - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-network-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-network - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-lxc-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-lxc - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-libxl-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-libxl - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-interface-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-interface - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-config-nwfilter - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-config-network - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-qemu - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-client - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-admin-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-admin - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-nss-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-nss - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-lock-sanlock-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-lock-sanlock - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-libs-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-libs - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-doc - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-debugsource - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-xen - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-nwfilter - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-lxc - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-hooks - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-scsi-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-scsi - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-rbd-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-rbd - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-mpath-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-mpath - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-logical-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-logical - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-iscsi-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-disk-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-disk - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-core-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-core - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-secret-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-nodedev-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-secret - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-iscsi - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-qemu-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-qemu - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-nwfilter-debuginfo - addressed in versions 3.3.0-5.49.1, 4.0.0-8.26.1, 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt0 (Ubuntu package) - addressed in versions 4.0.0-1ubuntu8.21, 6.0.0-0ubuntu8.16, 7.6.0-0ubuntu1.2
libvirt-daemon (Ubuntu package) - addressed in versions 4.0.0-1ubuntu8.21, 6.0.0-0ubuntu8.16, 7.6.0-0ubuntu1.2
libvirt-daemon-system (Ubuntu package) - addressed in versions 4.0.0-1ubuntu8.21, 6.0.0-0ubuntu8.16, 7.6.0-0ubuntu1.2
libvirt-devel - addressed in versions 4.0.0-9.40.1, 5.1.0-13.28.2, 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-bash-completion - addressed in versions 5.1.0-17.1, 6.0.0-13.24.1, 7.1.0-6.11.1
libvirt-daemon-driver-storage-iscsi-direct - update to 7.1.0-6.11.1
libvirt-daemon-driver-storage-iscsi-direct-debuginfo - update to 7.1.0-6.11.1

External References

Related Security Bulletins