mirror of
git://git.yoctoproject.org/meta-virtualization.git
synced 2025-07-19 12:50:22 +02:00
libvirt: Security fix for CVE-2021-3631
Source: https://libvirt.org/git/libvirt.git
MR: 112956
Type: Security Fix
Disposition: Backport from 15073504db
ChangeID: 314727e329e5b1351326737eb9c9232f465db184
Description:
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
parent
21fc084aa2
commit
c19c992785
56
recipes-extended/libvirt/libvirt/CVE-2021-3631.patch
Normal file
56
recipes-extended/libvirt/libvirt/CVE-2021-3631.patch
Normal file
|
@ -0,0 +1,56 @@
|
|||
From 15073504dbb624d3f6c911e85557019d3620fdb2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Mon, 28 Jun 2021 13:09:04 +0100
|
||||
Subject: [PATCH] security: fix SELinux label generation logic
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
A process can access a file if the set of MCS categories
|
||||
for the file is equal-to *or* a subset-of, the set of
|
||||
MCS categories for the process.
|
||||
|
||||
If there are two VMs:
|
||||
|
||||
a) svirt_t:s0:c117
|
||||
b) svirt_t:s0:c117,c720
|
||||
|
||||
Then VM (b) is able to access files labelled for VM (a).
|
||||
|
||||
IOW, we must discard case where the categories are equal
|
||||
because that is a subset of many other valid category pairs.
|
||||
|
||||
Fixes: https://gitlab.com/libvirt/libvirt/-/issues/153
|
||||
CVE-2021-3631
|
||||
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
|
||||
Upstream-Status: Backport
|
||||
CVE: CVE-2021-3631
|
||||
Signed-off-by: Armin Kuster <akuster@mvista.com>
|
||||
|
||||
---
|
||||
src/security/security_selinux.c | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: libvirt-6.1.0/src/security/security_selinux.c
|
||||
===================================================================
|
||||
--- libvirt-6.1.0.orig/src/security/security_selinux.c
|
||||
+++ libvirt-6.1.0/src/security/security_selinux.c
|
||||
@@ -391,7 +391,15 @@ virSecuritySELinuxMCSFind(virSecurityMan
|
||||
VIR_DEBUG("Try cat %s:c%d,c%d", sens, c1 + catMin, c2 + catMin);
|
||||
|
||||
if (c1 == c2) {
|
||||
- mcs = g_strdup_printf("%s:c%d", sens, catMin + c1);
|
||||
+ /*
|
||||
+ * A process can access a file if the set of MCS categories
|
||||
+ * for the file is equal-to *or* a subset-of, the set of
|
||||
+ * MCS categories for the process.
|
||||
+ *
|
||||
+ * IOW, we must discard case where the categories are equal
|
||||
+ * because that is a subset of other category pairs.
|
||||
+ */
|
||||
+ continue;
|
||||
} else {
|
||||
if (c1 > c2) {
|
||||
int t = c1;
|
|
@ -44,6 +44,7 @@ SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
|
|||
file://CVE-2020-25637_2.patch \
|
||||
file://CVE-2020-25637_3.patch \
|
||||
file://CVE-2020-25637_4.patch \
|
||||
file://CVE-2021-3631.patch \
|
||||
"
|
||||
|
||||
SRC_URI[libvirt.md5sum] = "1bd4435f77924f5ec9928b538daf4a02"
|
||||
|
|
Loading…
Reference in New Issue
Block a user