cirrus_bitblt_cputovideo does not check if memory region is safe

2017-02-21T10:42:00
ID XSA-209
Type xen
Reporter Xen Project
Modified 2017-02-21T10:42:00

Description

ISSUE DESCRIPTION

In CIRRUS_BLTMODE_MEMSYSSRC mode the bitblit copy routine cirrus_bitblt_cputovideo fails to check wethehr the specified memory region is safe.

IMPACT

A malicious guest administrator can cause an out of bounds memory write, very likely exploitable as a privilege escalation.

VULNERABLE SYSTEMS

Versions of qemu shipped with all Xen versions are vulnerable. Xen systems running on x86 with HVM guests, with the qemu process running in dom0 are vulnerable. Only guests provided with the "cirrus" emulated video card can exploit the vulnerability. The non-default "stdvga" emulated video card is not vulnerable. (With xl the emulated video card is controlled by the "stdvga=" and "vga=" domain configuration options.) ARM systems are not vulnerable. Systems using only PV guests are not vulnerable. For VMs whose qemu process is running in a stub domain, a successful attacker will only gain the privileges of that stubdom, which should be only over the guest itself. Both upstream-based versions of qemu (device_model_version="qemu-xen") and `traditional' qemu (device_model_version="qemu-xen-traditional") are vulnerable.