KVM: nSVM: Triple fault if restore host CR3 fails on nested #VMEXIT
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.114, 6.18.57, 7.0.4
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: KVM: nSVM: Triple fault if restore host CR3 fails on nested #VMEXIT If loading L1's CR3 fails on a nested #VMEXIT, nested_svm_vmexit() returns an error code that is ignored by most callers, and continues to run L1 with corrupted state. A sane recovery is not possible in this case, and HW behavior is to cause a shutdown. Inject a triple fault instead, and do not return early from nested_svm_vmexit(). Continue cleaning up the vCPU state (e.g. clear pending exceptions), to handle the failure as gracefully as possible. From the APM: Upon #VMEXIT, the processor performs the following actions in order to return to the host execution context: ... if (illegal host state loaded, or exception while loading host state) shutdown else execute first host instruction following the VMRUN Remove the return value of nested_svm_vmexit(), which is mostly unchecked anyway.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From d82aaef9c88aa27bce63751d6d6329920b1fe8da · fixed in 2e661773890e6ba6b16064fad961da3dd311be43; From d82aaef9c88aa27bce63751d6d6329920b1fe8da · fixed in af79992ecdb6817970d757fb5d853b8d9b55a0d6; From d82aaef9c88aa27bce63751d6d6329920b1fe8da · fixed in b0eb0a8959ac2b808eb11548d002fe1f9b5650cc; From d82aaef9c88aa27bce63751d6d6329920b1fe8da · fixed in 9a738cf170a4a2332ea3a15e23ec65b5757fe4a1; From d82aaef9c88aa27bce63751d6d6329920b1fe8da · fixed in 5d291ef0585ed880ed4dd71ea1a5965e0a65fb53
- Linux Linux
5.9
- KernelLinux
From 5.9.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.114; From 6.13.0 · fixed in 6.18.57; From 6.19.0 · fixed in 7.0.4