Certain HYPERVISOR_memory_op subops take page order inputs, with so far insufficient enforcement of limits thereof. In particular, for all of XENMEM_increase_reservation, XENMEM_populate_physmap, and XENMEM_exchange the order was limited to 9 only for guests without physical devices assigned. Guests with assigned devices were allowed up to order 18 (x86) or 20 (ARM). XENMEM_decrease_reservation enforced only the latter, higher limit uniformly on all kinds of guests.
All of these operations involve loops over individual pages (possibly nested, with only the iteration count of the innermost loop being of interest here), resulting in iteration counts of up to 1 million on ARM. Total execution time of these operations obviously depends on system speed, but have been measured to get into the seconds range.
A malicious guest administrator can cause a denial of service. Specifically, prevent use of a physical CPU for a significant period. Other attacks, namely privilege escalation, cannot be ruled out.
If a host watchdog (Xen or dom0) is in use, this can lead to a watchdog timeout and consequently a reboot of the host. If another, innocent, guest, is configured with a watchdog, this issue can lead to a reboot of such a guest.
All Xen versions supporting ARM are affected.
The vulnerability can be avoided if the guest kernel is controlled by the host rather than guest administrator, provided that further steps are taken to prevent the guest administrator from loading code into the kernel (e.g. by disabling loadable modules etc) or from using other mechanisms which allow them to run code at kernel privilege. On ARM, controlling the guest's kernel may involve locking down the bootloader.
Exposure may be limited by not passing through physical devices to untrusted guests.
Created attachment 1098193 [details]
xen-unstable, Xen 4.6.x, Xen 4.5.x
Created attachment 1098194 [details]
Xen 4.4.x, Xen 4.3.x
Red Hat would like to thank the Xen project for reporting this issue. Upstream acknowledges Julien Grall of Citrix as the original reporter.
Created xen tracking bugs for this issue:
Affects: fedora-all [bug 1289568]
Just added to the upstream advisory:
UPDATES IN VERSION 4
Mention that the original patches had two problems, supplying an
xen-4.5.2-5.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.
xen-4.5.2-5.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.
This issue does not affect the Linux kernel packages as shipped with Red Hat Enterprise Linux 5, 6, and 7, Red Hat Enterprise MRG 2, and realtime kernels.
At the time of writing, XEN on Red Hat Enterprise Linux 5 did not support ARM guests. XEN was not available on versions Red Hat Enterprise Linux 6 and 7, Red Hat Enterprise MRG 2, and realtime kernels.