Improper locking in libvirt - CVE-2021-3667

 

Improper locking in libvirt - CVE-2021-3667

Published: May 3, 2022


Vulnerability identifier: #VU62734
CSH Severity: Low
CVSS v4: 4.8 [CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N]
CVE-ID: CVE-2021-3667
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 virStoragePoolLookupByTargetPath API in libvirt in storage/storage_driver.c. The storagePoolLookupByTargetPath() function does not properly release a locked object (virStoragePoolObj) on ACL permission failure. Clients connecting to the read-write socket with limited ACL permissions can use this vulnerability to acquire the lock and prevent other users from accessing storage pool/volume APIs. As a result a local user can perform a denial of service (DoS) attack.


Affected software

libvirt
Gentoo Linux
SUSE CaaS Platform
SUSE MicroOS
SUSE Enterprise Storage
Red Hat CodeReady Linux Builder for ARM 64
Red Hat CodeReady Linux Builder for Power, little endian
Red Hat CodeReady Linux Builder for x86_64
Red Hat Enterprise Linux for ARM 64
Red Hat Enterprise Linux for Power, little endian
Red Hat Enterprise Linux for IBM z Systems
Red Hat Enterprise Linux for x86_64
Red Hat CodeReady Linux Builder for IBM z Systems
SUSE Linux Enterprise Server
SUSE Linux Enterprise Software Development Kit
SUSE Linux Enterprise Server for SAP
SUSE Linux Enterprise High Performance Computing
SUSE Linux Enterprise Module for Server Applications
SUSE Linux Enterprise Module for Basesystem
Ubuntu
openEuler
Fedora
libvirt-daemon (Ubuntu package)
libvirt-daemon-system (Ubuntu package)
libvirt0 (Ubuntu package)
libvirt-daemon-driver-network-debuginfo
libvirt-daemon-driver-lxc
libvirt-daemon-driver-nodedev
libvirt-daemon-driver-nodedev-debuginfo
libvirt-daemon-driver-nwfilter
libvirt-daemon-driver-nwfilter-debuginfo
libvirt-daemon-driver-qemu
libvirt-daemon-driver-qemu-debuginfo
libvirt-daemon-driver-secret
libvirt-daemon-driver-secret-debuginfo
libvirt-daemon-driver-storage
libvirt-daemon-driver-storage-core
libvirt-daemon-driver-storage-core-debuginfo
libvirt-daemon-driver-storage-disk
libvirt-daemon-driver-network
libvirt-daemon-driver-lxc-debuginfo
libvirt-daemon-xen
libvirt-daemon-driver-interface-debuginfo
libvirt-daemon-driver-interface
libvirt-daemon-debuginfo
libvirt-daemon-config-nwfilter
libvirt-daemon-config-network
libvirt-daemon
libvirt-client-debuginfo
libvirt-client
libvirt-admin-debuginfo
libvirt-admin
libvirt
libvirt-daemon-driver-storage-iscsi
libvirt-daemon-driver-storage-disk-debuginfo
libvirt-daemon-driver-storage-rbd-debuginfo
libvirt-daemon-driver-storage-rbd
libvirt-daemon-driver-libxl-debuginfo
libvirt-daemon-driver-libxl
libvirt-doc
libvirt-bash-completion
libvirt-nss-debuginfo
libvirt-nss
libvirt-lock-sanlock-debuginfo
libvirt-lock-sanlock
libvirt-libs-debuginfo
libvirt-libs
libvirt-debugsource
libvirt-devel
libvirt-daemon-driver-storage-iscsi-debuginfo
libvirt-daemon-driver-storage-logical
libvirt-daemon-driver-storage-logical-debuginfo
libvirt-daemon-driver-storage-mpath
libvirt-daemon-driver-storage-mpath-debuginfo
libvirt-daemon-driver-storage-scsi-debuginfo
libvirt-daemon-hooks
libvirt-daemon-lxc
libvirt-daemon-qemu
libvirt-daemon-driver-storage-scsi
libvirt-docs
libvirt-wireshark
libvirt-daemon-driver-storage-iscsi-direct
libvirt-daemon-kvm
libvirt-debuginfo
libvirt-daemon-driver-storage-gluster
libvirt-daemon-driver-storage-iscsi-direct-debuginfo
app-emulation/libvirt
dev-python/libvirt-python

How to mitigate CVE-2021-3667

Install updates from vendor's website.

libvirt - update to 7.6.0
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
libvirt0 (Ubuntu package) - addressed in versions 4.0.0-1ubuntu8.21, 6.0.0-0ubuntu8.16, 7.6.0-0ubuntu1.2
libvirt-daemon-driver-network-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-lxc - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-nodedev - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-nodedev-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-nwfilter - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-nwfilter-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-qemu - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-qemu-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-secret - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-secret-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-core - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-core-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-disk - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-network - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-lxc-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-xen - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-interface-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-interface - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-config-nwfilter - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-config-network - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-client-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-client - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-admin-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-admin - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-iscsi - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-disk-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-rbd-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-rbd - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-libxl-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-libxl - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-doc - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-bash-completion - addressed in versions 5.1.0-8.29.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-nss-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-nss - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-lock-sanlock-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-lock-sanlock - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-libs-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-libs - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-debugsource - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-devel - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-iscsi-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-logical - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-logical-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-mpath - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-mpath-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-scsi-debuginfo - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-hooks - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-lxc - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-qemu - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-storage-scsi - addressed in versions 5.1.0-8.29.1, 5.1.0-13.25.1, 6.0.0-13.21.1, 7.1.0-6.5.1
libvirt-daemon-driver-secret - update to 6.2.0-13
libvirt-daemon-driver-storage-mpath - update to 6.2.0-13
libvirt-docs - update to 6.2.0-13
libvirt-daemon-driver-storage-core - update to 6.2.0-13
libvirt-daemon-driver-nodedev - update to 6.2.0-13
libvirt-daemon-driver-storage-scsi - update to 6.2.0-13
libvirt-libs - update to 6.2.0-13
libvirt-debugsource - update to 6.2.0-13
libvirt-daemon-driver-storage-iscsi - update to 6.2.0-13
libvirt-daemon-config-network - update to 6.2.0-13
libvirt-lock-sanlock - update to 6.2.0-13
libvirt-daemon-driver-network - update to 6.2.0-13
libvirt-daemon-driver-storage - update to 6.2.0-13
libvirt-daemon - update to 6.2.0-13
libvirt-daemon-driver-storage-rbd - update to 6.2.0-13
libvirt-daemon-config-nwfilter - update to 6.2.0-13
libvirt-wireshark - update to 6.2.0-13
libvirt-daemon-driver-storage-disk - update to 6.2.0-13
libvirt - update to 6.2.0-13
libvirt-daemon-driver-storage-iscsi-direct - update to 6.2.0-13
libvirt-daemon-driver-qemu - update to 6.2.0-13
libvirt-nss - update to 6.2.0-13
libvirt-daemon-qemu - update to 6.2.0-13
libvirt-daemon-kvm - update to 6.2.0-13
libvirt-client - update to 6.2.0-13
libvirt-debuginfo - update to 6.2.0-13
libvirt-admin - update to 6.2.0-13
libvirt-bash-completion - update to 6.2.0-13
libvirt-daemon-driver-storage-logical - update to 6.2.0-13
libvirt-devel - update to 6.2.0-13
libvirt-daemon-driver-interface - update to 6.2.0-13
libvirt-daemon-driver-storage-gluster - update to 6.2.0-13
libvirt-daemon-driver-nwfilter - update to 6.2.0-13
libvirt - update to 7.0.0-7.fc34
libvirt-daemon-driver-storage-iscsi-direct - update to 7.1.0-6.5.1
libvirt-daemon-driver-storage-iscsi-direct-debuginfo - update to 7.1.0-6.5.1
app-emulation/libvirt - update to 8.2.0
dev-python/libvirt-python - update to 8.2.0

External References

Related Security Bulletins