mirror of
git://git.yoctoproject.org/meta-virtualization.git
synced 2025-07-19 20:59:41 +02:00
libvirt: CVE-2021-3975 segmentation fault during VM shutdown can lead to vdsm hang
Source: https://gitlab.com/libvirt/libvirt
MR: 121161
Type: Security Fix
Disposition: Backport from 1ac703a7d0
ChangeID: 747f58e69ce4b1dc4b77277a6acf4e5742d19fad
Description:
CVE-2021-3975 libvirt: segmentation fault during VM shutdown can lead to vdsm hang.
Affects libvirt < 7.1
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
parent
a63a54df31
commit
cb95344976
44
recipes-extended/libvirt/libvirt/CVE-2021-3975.patch
Normal file
44
recipes-extended/libvirt/libvirt/CVE-2021-3975.patch
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
From ffeb79e085a63f9917fc52a809a69e31e5cfd9b6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hitendra Prajapati <hprajapati@mvista.com>
|
||||||
|
Date: Tue, 13 Sep 2022 10:35:43 +0530
|
||||||
|
Subject: [PATCH] CVE-2021-3975
|
||||||
|
|
||||||
|
Upstream-Status: Backport [https://github.com/libvirt/libvirt/commit/1ac703a7d0789e46833f4013a3876c2e3af18ec7]
|
||||||
|
CVE: CVE-2021-3975
|
||||||
|
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
|
||||||
|
|
||||||
|
qemu: Add missing lock in qemuProcessHandleMonitorEOF
|
||||||
|
|
||||||
|
qemuMonitorUnregister will be called in multiple threads (e.g. threads
|
||||||
|
in rpc worker pool and the vm event thread). In some cases, it isn't
|
||||||
|
protected by the monitor lock, which may lead to call g_source_unref
|
||||||
|
more than one time and a use-after-free problem eventually.
|
||||||
|
|
||||||
|
Add the missing lock in qemuProcessHandleMonitorEOF (which is the only
|
||||||
|
position missing lock of monitor I found).
|
||||||
|
|
||||||
|
Suggested-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Signed-off-by: Peng Liang <liangpeng10@huawei.com>
|
||||||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
---
|
||||||
|
src/qemu/qemu_process.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
|
||||||
|
index d903505..0d6f14c 100644
|
||||||
|
--- a/src/qemu/qemu_process.c
|
||||||
|
+++ b/src/qemu/qemu_process.c
|
||||||
|
@@ -313,7 +313,9 @@ qemuProcessHandleMonitorEOF(qemuMonitorPtr mon,
|
||||||
|
/* We don't want this EOF handler to be called over and over while the
|
||||||
|
* thread is waiting for a job.
|
||||||
|
*/
|
||||||
|
+ virObjectLock(mon);
|
||||||
|
qemuMonitorUnregister(mon);
|
||||||
|
+ virObjectUnlock(mon);
|
||||||
|
|
||||||
|
/* We don't want any cleanup from EOF handler (or any other
|
||||||
|
* thread) to enter qemu namespace. */
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
|
@ -48,6 +48,7 @@ SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
|
||||||
file://CVE-2021-3631.patch \
|
file://CVE-2021-3631.patch \
|
||||||
file://CVE-2021-3667.patch \
|
file://CVE-2021-3667.patch \
|
||||||
file://CVE-2022-0897.patch \
|
file://CVE-2022-0897.patch \
|
||||||
|
file://CVE-2021-3975.patch \
|
||||||
"
|
"
|
||||||
SRC_URI[libvirt.md5sum] = "a870e63f20fac2ccf98e716d05256145"
|
SRC_URI[libvirt.md5sum] = "a870e63f20fac2ccf98e716d05256145"
|
||||||
SRC_URI[libvirt.sha256sum] = "167c185be45560e73dd3e14ed375778b555c01455192de2dafc4d0f74fabebc0"
|
SRC_URI[libvirt.sha256sum] = "167c185be45560e73dd3e14ed375778b555c01455192de2dafc4d0f74fabebc0"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user