Xen SYSCALL singlestep Handling Privilege Escalation (XSA-204)
High Nessus Plugin ID 96960
SynopsisThe remote Xen hypervisor installation is missing a security update.
DescriptionAccording to its self-reported version number, the Xen hypervisor installed on the remote host is missing a security update. It is, therefore, affected by a privilege elevation vulnerability in the instruction emulator when handling SYSCALL by single-stepping applications. This is due to incorrect exceptions being raised based on the flags at the start of an instruction. A local attacker can exploit this issue to gain elevated privileges on the guest operating system.
Please note the following items :
- The vulnerability is only exposed to 64-bit x86 HVM guests.
- On Xen version 4.6 and earlier, the vulnerability is exposed to all guest user processes, including unprivileged processes in such guests.
- On Xen version 4.7 and later, the vulnerability is exposed only to guest user processes granted a degree of privilege (e.g., direct hardware access) by the guest administrator, or else to all user processes when the VM has been explicitly configured with a non-default CPU vendor string (in xm/xl, this would be done with a 'cpuid=' domain config option).
- A 64-bit guest kernel which uses an IST for #DB handling will most likely mitigate the issue but will have a single unexpected #DB exception frame to deal with. In practice, this means that Linux is not vulnerable.
- The vulnerability is not exposed to 32-bit HVM guests.
This is because the emulation bug also matches real hardware behavior, and a 32-bit guest kernel using SYSCALL will already have to be using a Task Gate for handling #DB to avoid being susceptible to an escalation of privilege.
- The vulnerability is not exposed to PV guests.
- ARM systems are not vulnerable.
Note that Nessus has not tested for this vulnerability but has instead relied only on the changeset versions based on the xen.git change log.
Nessus did not check guest hardware configurations or if patches were applied manually to the source code before a recompile and reinstall.
SolutionApply the appropriate patch according to the vendor advisory.