Xen Security Advisory 117 (CVE-2015-0268) - arm: vgic-v2: GICD_SGIR is not properly emulated
Xen.org security team <[email protected]>
| Newsgroups | gmane.comp.emulators.xen.announce |
|---|---|
| Message-ID | <E1YLxlX-0005MD-7c__10878.3721844249$1423763519$gmane$org@xenbits.xen.org> |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Xen Security Advisory CVE-2015-0268 / XSA-117
version 2
arm: vgic-v2: GICD_SGIR is not properly emulated
UPDATES IN VERSION 2
====================
CVE assigned.
Mention CVE and XSA numbers in patch commit message.
Public release.
ISSUE DESCRIPTION
=================
When decoding a guest write to a specific register in the virtual
interrupt controller Xen would treat an invalid value as a critical
error and crash the host.
IMPACT
======
By writing an invalid value to the GICD.SGIR register a guest can
crash the host, resulting in a Denial of Service attack.
VULNERABLE SYSTEMS
==================
Xen 4.5 and later systems running on ARM hardware with version 2 of
the generic interrupt controller are vulnerable.
Systems running on ARM hardware with version 3 of the generic
interrupt controller are not vulnerable.
x86 systems are not affected.
MITIGATION
==========
None.
CREDITS
=======
This issue was discovered by Julien Grall.
RESOLUTION
==========
Applying the appropriate attached patch resolves this issue.
xsa117.patch Xen 4.5.x, xen-unstable
$ sha256sum xsa117*.patch
5d7c1ec3bd604ed49999a56fefeebda1206f424b1b48c0e44899f13bc1e55cd0 xsa117.patch
$
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQEcBAEBAgAGBQJU3OW0AAoJEIP+FMlX6CvZePcH/06WboLULU7JEfvzFqpnxpQV
XmNXCuvjcOt4d/w77a78kq8Bw8RUiDHR3f6qb+sJeNsJ1V55o0/KGgydEu+DqoF7
3bftmPDvuBcqoF3+7KupjRp0sBU+11Q/Jtb+P/0ZtVReFKGxmpg8kBura56rL3wf
iL1kMA4V0Kd4abmXXr6yUJMQuI19OZSQ43Zo7F9kOomyc7lcKB6vhnMtCiXw1F9Y
zfnyP1V1s5h77juSe01pQhEqjDlKv/NNkfJav6s7eVYVbJAwFgUP2vOZ14t2dR+o
5M8PPwF6EFBm421Z1D67caBh1ovGzeywZcrCl8nxuex+dqwomLymIMaL0P/fY6g=
=edQs
-----END PGP SIGNATURE-----
_______________________________________________
Xen-announce mailing list
[email protected]
http://lists.xen.org/xen-announce
xsa117.patch
(application/octet-stream, 1.3 KB)
From 472dc9e627c8f1b9d7138b142a5b0838550a2072 Mon Sep 17 00:00:00 2001 From: Julien Grall <[email protected]> Date: Fri, 23 Jan 2015 14:15:07 +0000 Subject: [PATCH] xen/arm: vgic-v2: Don't crash the hypervisor if the SGI target mode is invalid The GICv2 spec reserved the value 0b11 for GICD_SGIR.TargetListFilter. Even if it's an invalid value, a malicious guest could write this value and threfore crash the hypervisor. Replace the BUG() by logging the error and inject a data abort to the guest. This was introduced by commit ea37fd21110b6fbcf9257f814076a243d3873cb7 "xen/arm: split vgic driver into generic and vgic-v2 driver". This is CVE-2015-0268 / XSA-117. Signed-off-by: Julien Grall <[email protected]> --- xen/arch/arm/vgic-v2.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c index 598bf06..9dc9a20 100644 --- a/xen/arch/arm/vgic-v2.c +++ b/xen/arch/arm/vgic-v2.c @@ -257,7 +257,10 @@ static int vgic_v2_to_sgi(struct vcpu *v, register_t sgir) sgi_mode = SGI_TARGET_SELF; break; default: - BUG(); + printk(XENLOG_G_DEBUG + "%pv: vGICD: unhandled GICD_SGIR write %"PRIregister" with wrong mode\n", + v, sgir); + return 0; } return vgic_to_sgi(v, sgir, sgi_mode, virq, vcpu_mask); -- 2.1.4