
For daemon-based toolstacks linked against libxl, such as libvirt, this will crash the toolstack, losing the state of any in-progress operations (localized DoS), and preventing further administrator operations unless the daemon is configured to restart automatically (system-wide DoS). The domain in question will hang in a crashed state, but can be destroyed by `xl destroy` just like any other non-cooperating domain. For xl, this will have no security-relevant effect: every VM has its own independent monitoring process, which contains no state. How this affects the system depends on the structure of the toolstack. The effect of this is to crash the process monitoring the guest.


When a guest nwo initiates a "soft reboot", uninitialized data structure leads to an assert() when later code finds the structure in an unexpected state. At some point later, an initialization function was introduced for the structure but the "soft reset" path wasn't refactored to call the initialization function. When the "soft reset" feature was implemented, the libxl_domain_suspend_state structure didn't require any initialization or disposal. Many internal data structures also require this initialize / dispose discipline, but not all of them. HVM soft-reset crashes toolstack libxl requires all data structures passed across its public interface to be initialized before use and disposed of afterwards by calling a specific set of functions. The situation is quite likely to be similar for speculative execution attacks which have yet to be discovered, disclosed, or mitigated. For more details, see: Similar situations may exist with other mitigations for other kinds of speculative execution attacks. For more details on Spectre v2, see: However, IBRS does not architecturally protect ring 0 from predictions learnt in ring 1.

It was retrofitted in microcode to existing CPUs. Indirect Branch Restricted Speculation (IBRS) is an architectural x86 extension put together to combat speculative execution sidechannel attacks, including Spectre v2. With the focus now being on 64-bit systems, and the availability of explicit hardware support for virtualization, fixing speculation issues in ring 1 is not a priority for processor companies. In AMD64, Xen had to use a different implementation approach, so Xen does not use ring 1 to support 64-bit guests. At the time when Xen was developed, this area of the i386 architecture was rarely used, which is why Xen was able to use it to implement paravirtualisation, Xen's novel approach to virtualization. X86: Speculative vulnerabilities with bare (non-shim) 32-bit PV guests 32-bit x86 PV guest kernels run in ring 1.
