KVM: x86: Ensure vendor's exit handler runs before fastpath userspace exits
- 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.12.96, 6.18.39, 7.1.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
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: KVM: x86: Ensure vendor's exit handler runs before fastpath userspace exits Move the handling of fastpath userspace exits into vendor code to ensure KVM runs vendor specific operations that need to run before userspace gains control of the vCPU. E.g. for VMX (and soon to be for SVM as well), KVM needs to flush the PML buffer prior to exiting to userspace, otherwise any memory written by the final KVM_RUN might never be flagged as dirty. Note, waiting to snapshot CR0 and CR3 until svm_handle_exit() is flawed in general, as that risks consuming stale state in a fastpath handler. That will be addressed in a future change.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From f7f39c50edb9d336274371953275e0d3503b9b75 · fixed in b3436d9b9b1affe1c3191ac9831308923f5f03c3; From f7f39c50edb9d336274371953275e0d3503b9b75 · fixed in 4ad73ef0e7966ecfe67de0060537b4cb14d9acd4; From f7f39c50edb9d336274371953275e0d3503b9b75 · fixed in f2ca2b5326211bd38490f0497eb583721ce0bbc0; From f7f39c50edb9d336274371953275e0d3503b9b75 · fixed in 0ffedf43910e44b76c2c1db4e9fbf12b268190c1
- Linux Linux
6.12
- KernelLinux
From 6.12.0 · fixed in 6.12.96; From 6.13.0 · fixed in 6.18.39; From 6.19.0 · fixed in 7.1.4