[libvirt] [PATCH 0/2] CVE-2015-0236: Check ACLs for the VIR_DOMAIN_XML_SECURE flag for snapshots and save images

Patches are pushed according to Eric's ACK on the security list. Peter Krempa (2): CVE-2015-0236: qemu: Check ACLs when dumping security info from save image CVE-2015-0236: qemu: Check ACLs when dumping security info from snapshots src/qemu/qemu_driver.c | 4 ++-- src/remote/remote_protocol.x | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) -- 2.2.1

The ACL check didn't check the VIR_DOMAIN_XML_SECURE flag and the appropriate permission for it. --- src/qemu/qemu_driver.c | 2 +- src/remote/remote_protocol.x | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 5994558..c9110f0 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6031,7 +6031,7 @@ qemuDomainSaveImageGetXMLDesc(virConnectPtr conn, const char *path, if (fd < 0) goto cleanup; - if (virDomainSaveImageGetXMLDescEnsureACL(conn, def) < 0) + if (virDomainSaveImageGetXMLDescEnsureACL(conn, def, flags) < 0) goto cleanup; ret = qemuDomainDefFormatXML(driver, def, flags); diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x index d91fbe0..15694fa 100644 --- a/src/remote/remote_protocol.x +++ b/src/remote/remote_protocol.x @@ -4819,6 +4819,7 @@ enum remote_procedure { * @generate: both * @priority: high * @acl: domain:read + * @acl: domain:read_secure:VIR_DOMAIN_XML_SECURE */ REMOTE_PROC_DOMAIN_SAVE_IMAGE_GET_XML_DESC = 235, -- 2.2.1

The ACL check didn't check the VIR_DOMAIN_XML_SECURE flag and the appropriate permission for it. Found via code inspection while fixing permissions for save images. --- src/qemu/qemu_driver.c | 2 +- src/remote/remote_protocol.x | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c9110f0..bc6aae4 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14406,7 +14406,7 @@ qemuDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot, if (!(vm = qemuDomObjFromSnapshot(snapshot))) return NULL; - if (virDomainSnapshotGetXMLDescEnsureACL(snapshot->domain->conn, vm->def) < 0) + if (virDomainSnapshotGetXMLDescEnsureACL(snapshot->domain->conn, vm->def, flags) < 0) goto cleanup; if (!(snap = qemuSnapObjFromSnapshot(vm, snapshot))) diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x index 15694fa..c8162a5 100644 --- a/src/remote/remote_protocol.x +++ b/src/remote/remote_protocol.x @@ -4489,6 +4489,7 @@ enum remote_procedure { * @generate: both * @priority: high * @acl: domain:read + * @acl: domain:read_secure:VIR_DOMAIN_XML_SECURE */ REMOTE_PROC_DOMAIN_SNAPSHOT_GET_XML_DESC = 186, -- 2.2.1
participants (1)
-
Peter Krempa