diff options
| author | Armin Kuster <akuster@mvista.com> | 2021-09-16 14:13:53 -0700 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@gmail.com> | 2021-09-16 18:21:15 -0400 |
| commit | c19c9927855abb63e89f9d853ba0cb258a2de415 (patch) | |
| tree | 58535b614091427a6bfc0dede4af691cd569ca01 | |
| parent | 21fc084aa2c4743bed5125a2f039adeece2f100f (diff) | |
| download | meta-virtualization-c19c9927855abb63e89f9d853ba0cb258a2de415.tar.gz | |
libvirt: Security fix for CVE-2021-3631
Source: https://libvirt.org/git/libvirt.git
MR: 112956
Type: Security Fix
Disposition: Backport from https://gitlab.com/libvirt/libvirt/-/commit/15073504dbb624d3f6c911e85557019d3620fdb2
ChangeID: 314727e329e5b1351326737eb9c9232f465db184
Description:
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
| -rw-r--r-- | recipes-extended/libvirt/libvirt/CVE-2021-3631.patch | 56 | ||||
| -rw-r--r-- | recipes-extended/libvirt/libvirt_6.3.0.bb | 1 |
2 files changed, 57 insertions, 0 deletions
diff --git a/recipes-extended/libvirt/libvirt/CVE-2021-3631.patch b/recipes-extended/libvirt/libvirt/CVE-2021-3631.patch new file mode 100644 index 00000000..c1fa8c2f --- /dev/null +++ b/recipes-extended/libvirt/libvirt/CVE-2021-3631.patch | |||
| @@ -0,0 +1,56 @@ | |||
| 1 | From 15073504dbb624d3f6c911e85557019d3620fdb2 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com> | ||
| 3 | Date: Mon, 28 Jun 2021 13:09:04 +0100 | ||
| 4 | Subject: [PATCH] security: fix SELinux label generation logic | ||
| 5 | MIME-Version: 1.0 | ||
| 6 | Content-Type: text/plain; charset=UTF-8 | ||
| 7 | Content-Transfer-Encoding: 8bit | ||
| 8 | |||
| 9 | A process can access a file if the set of MCS categories | ||
| 10 | for the file is equal-to *or* a subset-of, the set of | ||
| 11 | MCS categories for the process. | ||
| 12 | |||
| 13 | If there are two VMs: | ||
| 14 | |||
| 15 | a) svirt_t:s0:c117 | ||
| 16 | b) svirt_t:s0:c117,c720 | ||
| 17 | |||
| 18 | Then VM (b) is able to access files labelled for VM (a). | ||
| 19 | |||
| 20 | IOW, we must discard case where the categories are equal | ||
| 21 | because that is a subset of many other valid category pairs. | ||
| 22 | |||
| 23 | Fixes: https://gitlab.com/libvirt/libvirt/-/issues/153 | ||
| 24 | CVE-2021-3631 | ||
| 25 | Reviewed-by: Peter Krempa <pkrempa@redhat.com> | ||
| 26 | Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> | ||
| 27 | |||
| 28 | Upstream-Status: Backport | ||
| 29 | CVE: CVE-2021-3631 | ||
| 30 | Signed-off-by: Armin Kuster <akuster@mvista.com> | ||
| 31 | |||
| 32 | --- | ||
| 33 | src/security/security_selinux.c | 10 +++++++++- | ||
| 34 | 1 file changed, 9 insertions(+), 1 deletion(-) | ||
| 35 | |||
| 36 | Index: libvirt-6.1.0/src/security/security_selinux.c | ||
| 37 | =================================================================== | ||
| 38 | --- libvirt-6.1.0.orig/src/security/security_selinux.c | ||
| 39 | +++ libvirt-6.1.0/src/security/security_selinux.c | ||
| 40 | @@ -391,7 +391,15 @@ virSecuritySELinuxMCSFind(virSecurityMan | ||
| 41 | VIR_DEBUG("Try cat %s:c%d,c%d", sens, c1 + catMin, c2 + catMin); | ||
| 42 | |||
| 43 | if (c1 == c2) { | ||
| 44 | - mcs = g_strdup_printf("%s:c%d", sens, catMin + c1); | ||
| 45 | + /* | ||
| 46 | + * A process can access a file if the set of MCS categories | ||
| 47 | + * for the file is equal-to *or* a subset-of, the set of | ||
| 48 | + * MCS categories for the process. | ||
| 49 | + * | ||
| 50 | + * IOW, we must discard case where the categories are equal | ||
| 51 | + * because that is a subset of other category pairs. | ||
| 52 | + */ | ||
| 53 | + continue; | ||
| 54 | } else { | ||
| 55 | if (c1 > c2) { | ||
| 56 | int t = c1; | ||
diff --git a/recipes-extended/libvirt/libvirt_6.3.0.bb b/recipes-extended/libvirt/libvirt_6.3.0.bb index fc2b63d3..33bac767 100644 --- a/recipes-extended/libvirt/libvirt_6.3.0.bb +++ b/recipes-extended/libvirt/libvirt_6.3.0.bb | |||
| @@ -44,6 +44,7 @@ SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \ | |||
| 44 | file://CVE-2020-25637_2.patch \ | 44 | file://CVE-2020-25637_2.patch \ |
| 45 | file://CVE-2020-25637_3.patch \ | 45 | file://CVE-2020-25637_3.patch \ |
| 46 | file://CVE-2020-25637_4.patch \ | 46 | file://CVE-2020-25637_4.patch \ |
| 47 | file://CVE-2021-3631.patch \ | ||
| 47 | " | 48 | " |
| 48 | 49 | ||
| 49 | SRC_URI[libvirt.md5sum] = "1bd4435f77924f5ec9928b538daf4a02" | 50 | SRC_URI[libvirt.md5sum] = "1bd4435f77924f5ec9928b538daf4a02" |
