Overview
About vulnerability
In the Linux kernel, the following vulnerability has been resolved:
KVM: VMX: Bury Intel PT virtualization (guest/host mode) behind CONFIG_BROKEN
Hide KVM’s pt_mode module param behind CONFIG_BROKEN, i.e. disable support for virtualizing Intel PT via guest/host mode unless BROKEN=y. There are myriad bugs in the implementation, some of which are fatal to the guest, and others which put the stability and health of the host at risk.
For guest fatalities, the most glaring issue is that KVM fails to ensure tracing is disabled, and stays disabled prior to VM-Enter, which is necessary as hardware disallows loading (the guest’s) RTIT_CTL if tracing is enabled (enforced via a VMX consistency check). Per the SDM:
If the logical processor is operating with Intel PT enabled (if IA32_RTIT_CTL.TraceEn = 1) at the time of VM entry, the “load IA32_RTIT_CTL” VM-entry control must be 0.
On the host side, KVM doesn’t validate the guest CPUID configuration provided by userspace, and even worse, uses the guest configuration to decide what MSRs to save/load at VM-Enter and VM-Exit. E.g. configuring guest CPUID to enumerate more address ranges than are supported in hardware will result in KVM trying to passthrough, save, and load non-existent MSRs, which generates a variety of WARNs, ToPA ERRORs in the host, a potential deadlock, etc.
Details
- Affected product:
- AlmaLinux 9.2 ESU , Amazon Linux 2 ELS , Oracle Linux 7 ELS , TuxCare 9.6 ESU , Ubuntu 16.04 ELS , Ubuntu 18.04 ELS , Ubuntu 20.04 ELS
- Affected packages:
- kernel @ 5.14.0-11 (+7 more)
Fixes
KernelCare state
Live-patch status from KernelCare for each operating system.
| Operating system | Status | Covered kernels |
|---|---|---|
| AlmaLinux 9 | Released |
79 kernels
|
| AlmaLinux 9.2 ESU | Planned | — |
| AlmaLinux 9.6 ESU | Ready For Release | — |
| Amazon Linux 2023 | Planned | — |
| Amazon Linux 2 5.10 | Will Not Fix | — |
| Debian 11 | Planned | — |
| Debian 11 cloud | Planned | — |
| Oracle Linux 7 UEK 6 | Released |
112 kernels
|
| Oracle Linux 8 UEK 6 | Released |
116 kernels
|
| Oracle Linux 8 UEK 7 | Released |
53 kernels
|
| Oracle Linux 9 | Released |
85 kernels
|
| Oracle Linux 9 UEK 7 | Released |
53 kernels
|
| Proxmox VE 7 5.15 | Released |
47 kernels
|
| RHEL 9 | Released |
79 kernels
|
| Rocky Linux 9 | Released |
67 kernels
|
| Ubuntu 18.04 AWS Focal | Released |
56 kernels
|
| Ubuntu 18.04 HWE Focal | Released |
69 kernels
|
| Ubuntu 20.04 | Released |
122 kernels
|
| Ubuntu 20.04 AWS | Released |
105 kernels
|
| Ubuntu 20.04 Azure | Released |
95 kernels
|
| Ubuntu 20.04 GCP | Released |
28 kernels
|
| Ubuntu 20.04 HWE AWS | Released |
52 kernels
|
| Ubuntu 20.04 HWE Azure | Released |
36 kernels
|
| Ubuntu 22.04 | Released |
69 kernels
|
| Ubuntu 22.04 AWS | Released |
60 kernels
|
| Ubuntu 22.04 Azure | Released |
56 kernels
|
| Ubuntu 24.04 | Released |
20 kernels
|
| Ubuntu 24.04 AWS | Ready For Release | — |