CVE-2024-50115

KVM: nSVM: Ignore nCR3[4:0] when loading PDPTEs from memory

State
Published
Severity
8.4 High
Published
Nov 5, 2024
Updated
Aug 5, 2026
Reserved
Oct 21, 2024

Read the record on cve.org

Description

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.

Scores

CVSSScoreVectorSource
3.18.4 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:HLinux
3.17.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:HCISA-ADP

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • e4e517b4be019787ada4cbbce2f04570c21b0cbd to before 76ce386feb14ec9a460784fcd495d8432acce7a5Affected
  • e4e517b4be019787ada4cbbce2f04570c21b0cbd to before 58cb697d80e669c56197f703e188867c8c54c494Affected
  • e4e517b4be019787ada4cbbce2f04570c21b0cbd to before 6876793907cbe19d42e9edc8c3315a21e06c32aeAffected
  • e4e517b4be019787ada4cbbce2f04570c21b0cbd to before 2c4adc9b192a0815fe58a62bc0709449416cc884Affected
  • e4e517b4be019787ada4cbbce2f04570c21b0cbd to before 426682afec71ea3f889b972d038238807b9443e4Affected
  • e4e517b4be019787ada4cbbce2f04570c21b0cbd to before f559b2e9c5c5308850544ab59396b7d53cfc67bdAffected
LinuxLinux
  • 3.2Affected
  • before 3.2Not affected
  • 5.10.229 through 5.10.*Not affected
  • 5.15.170 through 5.15.*Not affected
  • 6.1.115 through 6.1.*Not affected
  • 6.6.59 through 6.6.*Not affected
  • 6.11.6 through 6.11.*Not affected
  • 6.12 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.