CVE-2024-53135 KVM: VMX: Bury Intel PT virtualization (guest/host mode) behind CONFIG_BROKEN
A flaw in Linux kernel KVM Intel PT virtualization allows host instability or guest crashes due to missing validation, requiring CONFIG_BROKEN to be enabled.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2024-53135?
CVE-2024-53135 is a high-severity denial of service vulnerability in Linux kernel, published on 4 Dec 2024. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
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.
Which versions are affected by CVE-2024-53135?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2024-53135?
Apply the vendor's patch.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2024-53135 being exploited?
There is no known exploitation of CVE-2024-53135 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as AZL-54141, AZL-54200, BELL-CVE-2024-53135, DEBIAN-CVE-2024-53135, GHSA-7gvv-gph6-2hpj, UBUNTU-CVE-2024-53135.