A buggy loop in Xen's compat_iret() function iterates the wrong way
around a 32-bit index. Any 32-bit PV guest kernel can trigger this
vulnerability by attempting a hypercall_iret with EFLAGS.VM set.
Given the use of __get/put_user(), and that the virtual addresses
in question are contained within the lower canonical half, the guest
cannot clobber any hypervisor data. Instead, Xen will take up to
2^33 pagefaults, in sequence, effectively hanging the host.
Malicious guest administrators can cause a denial of service
affecting the whole system.