The fixes for XSA-422 (Branch Type Confusion) and XSA-434 (Speculative
Return Stack Overflow) are not IRQ-safe. It was believed that the
mitigations always operated in contexts with IRQs disabled.
However, the original XSA-254 fix for Meltdown (XPTI) deliberately left
interrupts enabled on two entry paths; one unconditionally, and one
conditionally on whether XPTI was active.
As BTC/SRSO and Meltdown affect different CPU vendors, the mitigations
are not active together by default. Therefore, there is a race
condition whereby a malicious PV guest can bypass BTC/SRSO protections
and launch a BTC/SRSO attack against Xen.
Las correcciones para XSA-422 (Branch Type Confusion) y XSA-434 (Speculative Return Stack Overflow) no son seguras para IRQ. Se creía que las mitigaciones siempre operaban en contextos con las IRQ deshabilitadas. Sin embargo, la solución XSA-254 original para Meltdown (XPTI) deliberadamente dejó habilitadas las interrupciones en dos rutas de entrada; uno incondicionalmente y otro condicionalmente sobre si XPTI estaba activo. Como BTC/SRSO y Meltdown afectan a diferentes proveedores de CPU, las mitigaciones no están activas juntas de forma predeterminada. Por lo tanto, existe una condición de ejecución mediante la cual un invitado PV malicioso puede eludir las protecciones BTC/SRSO y lanzar un ataque BTC/SRSO contra Xen.