CVE Vulnerabilities

CVE-2022-0897

Improper Locking

Published: Mar 25, 2022 | Modified: Apr 01, 2024
CVSS 3.x
4.3
MEDIUM
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
CVSS 2.x
4 MEDIUM
AV:N/AC:L/Au:S/C:N/I:N/A:P
RedHat/V2
RedHat/V3
5 LOW
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:H
Ubuntu
LOW

A flaw was found in the libvirt nwfilter driver. The virNWFilterObjListNumOfNWFilters method failed to acquire the driver->nwfilters mutex before iterating over virNWFilterObj instances. There was no protection to stop another thread from concurrently modifying the driver->nwfilters object. This flaw allows a malicious, unprivileged user to exploit this issue via libvirts API virConnectNumOfNWFilters to crash the network filter management daemon (libvirtd/virtnwfilterd).

Weakness

The product does not properly acquire or release a lock on a resource, leading to unexpected resource state changes and behaviors.

Affected Software

Name Vendor Start Version End Version
Libvirt Redhat * 1.1.1 (including)
Red Hat Enterprise Linux 8 RedHat virt-devel:rhel-8070020220921004438.3b9f49c4 *
Red Hat Enterprise Linux 8 RedHat virt:rhel-8070020220921004438.3b9f49c4 *
Red Hat Enterprise Linux 9 RedHat libvirt-0:8.5.0-7.el9_1 *
Libvirt Ubuntu bionic *
Libvirt Ubuntu focal *
Libvirt Ubuntu impish *
Libvirt Ubuntu jammy *
Libvirt Ubuntu trusty *
Libvirt Ubuntu xenial *

Extended Description

Locking is a type of synchronization behavior that ensures that multiple independently-operating processes or threads do not interfere with each other when accessing the same resource. All processes/threads are expected to follow the same steps for locking. If these steps are not followed precisely - or if no locking is done at all - then another process/thread could modify the shared resource in a way that is not visible or predictable to the original process. This can lead to data or memory corruption, denial of service, etc.

Potential Mitigations

References