KVM: SEV: Free have_run_cpus during VM destruction even if VM is no longer SEV
- 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.18.55, 7.2.9
- 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: SEV: Free have_run_cpus during VM destruction even if VM is no longer SEV Unconditionally free SEV's "have run CPUs" cpumask in the VM destroy path, i.e. even for what appear to be non-SEV VMs, as an SEV VM becomes a non-SEV VM if its state is intra-host migrated. Alternatively, the mask could be freed in sev_migrate_from() when "converting" the source VM, but that gets annoying because ideally KVM would nullify the mask to guard against UAF, and nullifying the mask would need be conditioned on CPUMASK_OFFSTACK=y. Freeing the mask during sev_migrate_from() is also not robust against other KVM bugs, though that's kind of a moot point since any such bugs would show up even if sev->active is never set. I.e. KVM must get that side of things correct. But, that's not a great reason to add more code just to make things marginally less robust.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 6f38f8c574642a822f2e85f079fa29a49176c49c · fixed in 6aef7cf800098749ff5d660222efaf6e01e98c09; From 6f38f8c574642a822f2e85f079fa29a49176c49c · fixed in 9784e5ca91b37b387f3f414af4340c54f7a63566; From 6f38f8c574642a822f2e85f079fa29a49176c49c · fixed in 12c1f6e03f944e399bd2c88441dca5dc702b95a5
- Linux Linux
6.17
- KernelLinux
From 6.17.0 · fixed in 6.18.55; From 6.19.0 · fixed in 7.2.9