Linux: KVM: SEV: Do cache maintenance on the source VM *before* clearing SEV state
What fixes it
- 8b7d4f68fef96cebe0b6dbb6e5607772337f7369LinuxCVE List
- 973ea70393e885e540f714904e51bc6cac80e3d7LinuxCVE List
- 6.18.56LinuxCVE List
- 7.2.10LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
KVM: SEV: Do cache maintenance on the source VM *before* clearing SEV state
Explicitly flush caches after intra-host migration before clearing "SEV active" on the source VM, as doing cache maintenance afterwards creates a tiny window where memory reclaim could return memory to the host without performing a cache flush, e.g. as pointed out by Sashiko:
CPU1 in sev_migrate_from(): src->active = false;
CPU2 running concurrent unmap: Since active is false, the automatic cache flush in sev_guest_memory_reclaimed is skipped. The host frees and reallocates the page.
CPU1 in sev_migrate_from(): sev_writeback_caches(src_kvm); Executes a hardware cache flush (wbnoinvd), which writes the guest's old dirty ciphertext over the new page owner's data.
Text from CVE List
Affected versions 5
- Linuxaffected: 37dfb676fafd1eef36fe0bb649607afbb0d5521b before 8b7d4f68fef96cebe0b6dbb6e5607772337f7369CVE List
- Linuxaffected: d4cc2dff12116a700add601c0262132cc26e1b2c before de83ff6a4d8f3618473bedb3c4400020c22e8a8aCVE List
- Linuxaffected: 93de2a6a4b91b72607136dd656edf03fb399d27f before 973ea70393e885e540f714904e51bc6cac80e3d7CVE List
- Linuxaffected: 6.18.55 before 6.18.56CVE List
- Linuxaffected: 7.2.9 before 7.2.10CVE List