Description
In the context switch logic Xen attempts to skip an IBPB in the case of a vCPU returning to a CPU on which it was the previous vCPU to run. While safe for Xen's isolation between vCPUs, this prevents the guest kernel correctly isolating between tasks. Consider: 1) vCPU runs on CPU A, running task 1. 2) vCPU moves to CPU B, idle gets scheduled on A. Xen skips IBPB. 3) On CPU B, guest kernel switches from task 1 to 2, issuing IBPB. 4) vCPU moves back to CPU A. Xen skips IBPB again. Now, task 2 is running on CPU A with task 1's training still in the BTB.
Product status
consult Xen advisory XSA-479
Credits
This issue was discovered by David Kaplan of AMD.
References
www.openwall.com/lists/oss-security/2026/01/27/3
xenbits.xen.org/xsa/advisory-479.html
xenbits.xenproject.org/xsa/advisory-479.html