CVE-2021-3975 Use after free in libvirt
An unprivileged client can crash the libvirt daemon via a use-after-free flaw in monitor handling during guest shutdown.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2021-3975?
CVE-2021-3975 is a medium-severity use after free vulnerability in Canonical Ubuntu Linux, published on 23 Aug 2022. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
A use-after-free flaw was found in libvirt. The qemuMonitorUnregister() function in qemuProcessHandleMonitorEOF is called using multiple threads without being adequately protected by a monitor lock. This flaw could be triggered by the virConnectGetAllDomainStats API when the guest is shutting down. An unprivileged client with a read-only connection could use this flaw to perform a denial of service attack by causing the libvirt daemon to crash.
Weakness: CWE-416
Which versions are affected by CVE-2021-3975?
It affects 14 products.
Linux distribution packages (40)
SLOF Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:20210217-1.module+el8.5.0+10946+35bb3930 |
hivex Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.3.18-22.module+el8.5.0+12087+2208d04c |
hivex-debuginfo Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.3.18-22.module+el8.5.0+12087+2208d04c |
hivex-debugsource Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.3.18-22.module+el8.5.0+12087+2208d04c |
hivex-devel Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.3.18-22.module+el8.5.0+12087+2208d04c |
libguestfs Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-bash-completion Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-debuginfo Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-debugsource Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-devel Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-gfs2 Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-gobject Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-gobject-debuginfo Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-gobject-devel Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-inspect-icons Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-java Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-java-debuginfo Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-java-devel Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-javadoc Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-man-pages-ja Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-man-pages-uk Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-rescue Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-rsync Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-tools Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-tools-c Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-tools-c-debuginfo Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libguestfs-winsupport Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:8.2-2.module+el8.5.0+12739+164806c8 |
libguestfs-xfs Red Hat:advanced_virtualization:8.5::el8 | All versions | 1:1.44.0-3.module+el8.5.0+10681+17a9b157 |
libiscsi Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.18.0-8.module+el8.4.0+8855+a9e237a9 |
libiscsi-debuginfo Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.18.0-8.module+el8.4.0+8855+a9e237a9 |
libiscsi-debugsource Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.18.0-8.module+el8.4.0+8855+a9e237a9 |
libiscsi-devel Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.18.0-8.module+el8.4.0+8855+a9e237a9 |
libiscsi-utils Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.18.0-8.module+el8.4.0+8855+a9e237a9 |
libiscsi-utils-debuginfo Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.18.0-8.module+el8.4.0+8855+a9e237a9 |
libnbd Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.6.0-4.module+el8.5.0+11638+3d8f9850 |
libnbd-bash-completion Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.6.0-4.module+el8.5.0+11638+3d8f9850 |
libnbd-debuginfo Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.6.0-4.module+el8.5.0+11638+3d8f9850 |
libnbd-debugsource Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.6.0-4.module+el8.5.0+11638+3d8f9850 |
libnbd-devel Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:1.6.0-4.module+el8.5.0+11638+3d8f9850 |
libtpms Red Hat:advanced_virtualization:8.5::el8 | All versions | 0:0.7.4-6.20201106git2452a24dab.module+el8.5.0+12487+f2fa92b4 |
Products include Canonical Ubuntu Linux, Debian Debian Linux, Fedoraproject Fedora, Netapp Ontap Select Deploy Administration Utility, Redhat Codeready Linux Builder, Redhat Enterprise Linux and 8 more.
How do I fix CVE-2021-3975?
Apply the vendor's patch.
Upgrade to the fixed version. These bugs are found with fuzzing and sanitisers and avoided by memory-safe languages. More about Use after free.
Is CVE-2021-3975 being exploited?
There is no known exploitation of CVE-2021-3975 in the wild and no public exploit code.
Public exploit code: 1 proofs of concept on GitHub.
Other vulnerabilities in Canonical Ubuntu Linux
Sources
Also known as CLSA-2022-1654537477, CLSA-2022-1654537694, DEBIAN-CVE-2021-3975, GHSA-pg89-46xq-98vv, OESA-2022-1891, RHBA-2021:4684 and 1 more.