Unlike 32-bit PV guests, HVM guests may switch freely...
Moderate severity
Unreviewed
Published
May 16, 2024
to the GitHub Advisory Database
•
Updated Dec 4, 2024
Description
Published by the National Vulnerability Database
May 16, 2024
Published to the GitHub Advisory Database
May 16, 2024
Last updated
Dec 4, 2024
Unlike 32-bit PV guests, HVM guests may switch freely between 64-bit and
other modes. This in particular means that they may set registers used
to pass 32-bit-mode hypercall arguments to values outside of the range
32-bit code would be able to set them to.
When processing of hypercalls takes a considerable amount of time,
the hypervisor may choose to invoke a hypercall continuation. Doing so
involves putting (perhaps updated) hypercall arguments in respective
registers. For guests not running in 64-bit mode this further involves
a certain amount of translation of the values.
Unfortunately internal sanity checking of these translated values
assumes high halves of registers to always be clear when invoking a
hypercall. When this is found not to be the case, it triggers a
consistency check in the hypervisor and causes a crash.
References