CVE-2024-50115: KVM: nSVM: Ignore nCR3[4:0] when loading PDPTEs from memory
In the Linux kernel, the following vulnerability has been resolved:
KVM: nSVM: Ignore nCR3[4:0] when loading PDPTEs from memory
Ignore nCR3[4:0] when loading PDPTEs from memory for nested SVM, as bits 4:0 of CR3 are ignored when PAE paging is used, and thus VMRUN doesn't enforce 32-byte alignment of nCR3.
In the absolute worst case scenario, failure to ignore bits 4:0 can result in an out-of-bounds read, e.g. if the target page is at the end of a memslot, and the VMM isn't using guard pages.
Per the APM:
The CR3 register points to the base address of the page-directory-pointer table. The page-directory-pointer table is aligned on a 32-byte boundary, with the low 5 address bits 4:0 assumed to be 0.
And the SDM's much more explicit:
4:0 Ignored
Note, KVM gets this right when loading PDPTRs, it's only the nSVM flow that is broken.
Other sources
This CVE was automatically created from a reference found in an email or other text. If you are reading this, then this CVE entry is probably erroneous, since this text should be replaced by the official CVE description automatically.
— Launchpad
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 5.10.234-1Fixed in 6.1.129-1Fixed in 6.1.135-1Fixed in 6.12.25-1Fixed in 6.12.27-1 - Upgrade
Upgrade
debian/linux-6.1to a version that resolves this vulnerability.Fixed in 6.1.129-1~deb11u1 - Upgrade
Upgrade
Linux kernel (KVM: nSVM)to a version that resolves this vulnerability.Patch KVM: nSVM: Ignore nCR3[4:0] when loading PDPTEs from memory - Compensating control
For nested SVM (nSVM) setups, ensure you are not relying on nCR3/32-byte alignment assumptions that require enforcing low 5 address bits 4:0 as 0 (32-byte alignment of PDPTR base is assumed); this specifically addresses the case where lack of the ignore behavior can lead to an out-of-bounds read (worst case) when the target page is at the end of a memslot and the VMM isn’t using guard pages.
Event History
Frequently Asked Questions
What is the severity of CVE-2024-50115?
The severity of CVE-2024-50115 is classified as high due to potential impacts on nested virtual machine environments.
How do I fix CVE-2024-50115?
To fix CVE-2024-50115, update the Linux kernel to the latest version that resolves this vulnerability.
Which versions of the Linux kernel are affected by CVE-2024-50115?
CVE-2024-50115 affects multiple versions of the Linux kernel from 3.2 up to 6.12-rc4.
Can CVE-2024-50115 affect my virtual machines?
Yes, CVE-2024-50115 can potentially impact the security and stability of nested virtual machines.
Is there a workaround for CVE-2024-50115?
Currently, the recommended action for CVE-2024-50115 is to apply the latest kernel updates, as there are no secure workarounds available.