CVE-2024-45818
NoneCVSS
—
EPSS
0.3%
Published
Dec 19, 2024
CISA due date
—
Cloudanix analysis
A bug in how virtual machines handle graphics memory can freeze the host system and stop all running virtual machines.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Other
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The hypervisor deadlock occurs when VGA memory acceleration code for HVM guests in standard mode holds a lock past function return; emulating an instruction with two VGA memory accesses attempts re-acquisition of the same lock.
Why it matters to the business
Hypervisor deadlock can halt virtual machine operations across affected Ubuntu systems, causing extended downtime for workloads relying on Xen-based virtualization with no ransomware association or public exploitation observed.
How an attack unfolds
An attacker controlling an HVM guest crafts an instruction performing two constrained VGA memory accesses; the second access triggers re-acquisition of the held lock, resulting in deadlock. The incomplete prior fix and accidental disablement since Xen 4.7 limit practical reach.
How to fix it
Upgrade to fixed package versions including linux 3.13.0-95.142, linux-aws 4.4.0-1002.2, linux-lts-xenial 4.4.0-36.55~14.04.1, linux 4.4.0-36.55, linux-aws 4.4.0-1001.10, linux-gke 4.4.0-1003.3, linux-hwe 4.8.0-36.36~16.04.1, linux-raspi2 4.4.0-1021.27, linux-snapdragon 4.4.0-1024.27, and linux-lts-vivid 3.19.0-68.76~14.04.1 as applicable per distribution.
How to confirm the fix worked
Confirm installed kernel packages match the listed fixed versions; inspect hypervisor source for removal of the VGA acceleration logic and test for absence of deadlock under dual VGA MMIO access emulation.
Typical attack path
- Obtain code execution inside an HVM guest
- Trigger VGA standard mode memory accesses with two touches under the documented constraints
- Cause lock re-acquisition and hypervisor deadlock
How to detect it
Review hypervisor and kernel logs for VGA MMIO lock acquisition messages or deadlock traces; correlate with HVM guest activity involving standard-mode VGA emulation. No named threat actors or ransomware campaigns are associated.
What your security team should do
- Apply the listed kernel updates on all affected Ubuntu 14.04 and 16.04 systems without delay
- Audit Xen HVM guest configurations for unnecessary VGA MMIO exposure
- Monitor hypervisor logs for VGA-related lock warnings or hangs during the 30-day EPSS-stable low-risk window
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.17 | xen | 0 | 4.16.6-r3 |
| Alpine:v3.18 | xen | 0 | 4.17.5-r2 |
| Alpine:v3.19 | xen | 0 | 4.18.3-r2 |
| Alpine:v3.20 | xen | 0 | 4.18.3-r2 |
| Alpine:v3.21 | xen | 0 | 4.19.0-r1 |
| Alpine:v3.22 | xen | 0 | 4.19.0-r1 |
| Debian:11 | xen | 0 | No fix |
| Debian:12 | xen | 0 | 4.17.5+23-ga4e5191dc0-1 |
| Debian:13 | xen | 0 | No fix |
| Mageia:9 | xen | 0 | 4.17.5-1.git20251028.1.mga9 |
| SUSE:Enterprise Storage 7.1 | xen | 0 | 4.14.6_22-150300.3.84.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | xen | 0 | 4.13.5_16-150200.3.99.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | xen | 0 | 4.14.6_22-150300.3.84.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | xen | 0 | 4.16.6_06-150400.4.65.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | xen | 0 | 4.16.6_06-150400.4.65.1 |
| SUSE:Linux Enterprise Micro 5.1 | xen | 0 | 4.14.6_22-150300.3.84.1 |
| SUSE:Linux Enterprise Micro 5.2 | xen | 0 | 4.14.6_22-150300.3.84.1 |
| SUSE:Linux Enterprise Micro 5.3 | xen | 0 | 4.16.6_06-150400.4.65.1 |
| SUSE:Linux Enterprise Micro 5.4 | xen | 0 | 4.16.6_06-150400.4.65.1 |
| SUSE:Linux Enterprise Micro 5.5 | xen | 0 | 4.17.5_06-150500.3.42.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | xen | 0 | 4.17.5_06-150500.3.42.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | xen | 0 | 4.18.3_06-150600.3.12.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP5 | xen | 0 | 4.17.5_06-150500.3.42.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP6 | xen | 0 | 4.18.3_06-150600.3.12.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | xen | 0 | 4.12.4_58-3.124.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | xen | 0 | 4.13.5_16-150200.3.99.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | xen | 0 | 4.14.6_22-150300.3.84.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | xen | 0 | 4.16.6_06-150400.4.65.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | xen | 0 | 4.12.4_58-3.124.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | xen | 0 | 4.13.5_16-150200.3.99.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | xen | 0 | 4.14.6_22-150300.3.84.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | xen | 0 | 4.16.6_06-150400.4.65.1 |
| SUSE:Manager Proxy 4.3 | xen | 0 | 4.16.6_06-150400.4.65.1 |
| SUSE:Manager Server 4.3 | xen | 0 | 4.16.6_06-150400.4.65.1 |
| Ubuntu:16.04:LTS | xen | 0 | No fix |
| Ubuntu:18.04:LTS | xen | 0 | No fix |
| Ubuntu:20.04:LTS | xen | 0 | No fix |
| Ubuntu:22.04:LTS | xen | 0 | No fix |
| Ubuntu:24.04:LTS | xen | 0 | No fix |
| Ubuntu:24.10 | xen | 0 | No fix |
| Ubuntu:25.04 | xen | 0 | No fix |
| Ubuntu:25.10 | xen | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | xen | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | xen | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | xen | 0 | No fix |
| openSUSE:Leap 15.5 | xen | 0 | 4.17.5_06-150500.3.42.1 |
| openSUSE:Leap 15.6 | xen | 0 | 4.18.3_06-150600.3.12.1 |
| openSUSE:Leap Micro 5.5 | xen | 0 | 4.17.5_06-150500.3.42.1 |
| openSUSE:Tumbleweed | xen | 0 | 4.19.0_06-1.1 |
Related vulnerabilities
- CVE-2024-2201 A cross-privilege Spectre v2 vulnerability allows attackers to bypass all deployed… Also affects xen
- CVE-2024-45819 PVH guests have their ACPI tables constructed by the toolstack. Also affects xen
- CVE-2024-31145 Certain PCI devices in a system might be assigned Reserved Memory Regions (specified via… Also affects xen
- CVE-2024-45817 In x86's APIC (Advanced Programmable Interrupt Controller) architecture, error conditions… Also affects xen
- CVE-2024-2193 A Speculative Race Condition (SRC) vulnerability that impacts modern CPU architectures… Also affects xen
- CVE-2023-28746 Information exposure through microarchitectural state after transient execution from some… Also affects xen
- CVE-2022-27672 When SMT is enabled, certain AMD processors may speculatively execute instructions using… Also affects xen
- CVE-2019-11135 TSX Asynchronous Abort condition on some CPUs utilizing speculative execution may allow… Also affects xen