Vulnerabilities > CVE-2024-50115 - Out-of-bounds Read vulnerability in Linux Kernel
Summary
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.
Vulnerable Configurations
Common Weakness Enumeration (CWE)
Common Attack Pattern Enumeration and Classification (CAPEC)
- Overread Buffers An adversary attacks a target by providing input that causes an application to read beyond the boundary of a defined buffer. This typically occurs when a value influencing where to start or stop reading is set to reflect positions outside of the valid memory location of the buffer. This type of attack may result in exposure of sensitive information, a system crash, or arbitrary code execution.
References
- https://git.kernel.org/stable/c/58cb697d80e669c56197f703e188867c8c54c494
- https://git.kernel.org/stable/c/6876793907cbe19d42e9edc8c3315a21e06c32ae
- https://git.kernel.org/stable/c/2c4adc9b192a0815fe58a62bc0709449416cc884
- https://git.kernel.org/stable/c/426682afec71ea3f889b972d038238807b9443e4
- https://git.kernel.org/stable/c/f559b2e9c5c5308850544ab59396b7d53cfc67bd
- https://git.kernel.org/stable/c/76ce386feb14ec9a460784fcd495d8432acce7a5