CVE-2024-45818

Deadlock in x86 HVM standard VGA handling

Medium · published December 19, 2024

CVSS v3.1
6.5
EPSS
0%
Percentile
18.2
In the wild
Unconfirmed
What it is

The hypervisor contains code to accelerate VGA memory accesses for HVM

guests, when the (virtual) VGA is in "standard" mode. Locking involved

there has an unusual discipline, leaving a lock acquired past the

return from the function that acquired it. This behavior results in a

problem when emulating an instruction with two memory accesses, both of

which touch VGA memory (plus some further constraints which aren't

relevant here). When emulating the 2nd access, the lock that is already

being held would be attempted to be re-acquired, resulting in a

deadlock.

This deadlock was already found when the code was first introduced, but

was analysed incorrectly and the fix was incomplete. Analysis in light

of the new finding cannot find a way to make the existing locking

discipline work.

In staging, this logic has all been removed because it was discovered

to be accidentally disabled since Xen 4.7. Therefore, we are fixing the

locking problem by backporting the removal of most of the feature. Note

that even with the feature disabled, the lock would still be acquired

for any accesses to the VGA MMIO region.

The record
Technical detail
CVSS v3.1
6.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
CVSS v4.0
Not supplied
EPSS
0.00270 · 18.2th percentile
Published
2024-12-19T12:00Z
EPSS history
Timeline
  • 19 DEC 12:00Z
    Deadlock in x86 HVM standard VGA handling
    cvelistv5