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.
[
{
"source": "https://github.com/libvirt/libvirt/commit/1ac703a7d0789e46833f4013a3876c2e3af18ec7",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2021-3975-12a0a0d2",
"target": {
"file": "src/qemu/qemu_process.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"315265246104295043233028789217389565548",
"105764427624893722313441396925088733050",
"286241987283172516990844761613712295006",
"197158705559895140885010290749044057343"
]
},
"signature_type": "Line"
},
{
"source": "https://github.com/libvirt/libvirt/commit/1ac703a7d0789e46833f4013a3876c2e3af18ec7",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2021-3975-57583cdb",
"target": {
"function": "qemuProcessHandleMonitorEOF",
"file": "src/qemu/qemu_process.c"
},
"digest": {
"length": 654.0,
"function_hash": "230318565073693938830034361256505555002"
},
"signature_type": "Function"
}
]