Subject: CVE-2021-47112: x86/kvm: Teardown PV features on boot CPU as well

From: Greg Kroah-Hartman <[email-masked]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

x86/kvm: Teardown PV features on boot CPU as well

Various PV features (Async PF, PV EOI, steal time) work through memory
shared with hypervisor and when we restore from hibernation we must
properly teardown all these features to make sure hypervisor doesn't
write to stale locations after we jump to the previously hibernated kernel
(which can try to place anything there). For secondary CPUs the job is
already done by kvm_cpu_down_prepare(), register syscore ops to do
the same for boot CPU.

The Linux kernel CVE team has assigned CVE-2021-47112 to this issue.

Affected and fixed versions
===========================

	Fixed in 5.4.125 with commit 7620a669111b
	Fixed in 5.10.43 with commit 38b858da1c58
	Fixed in 5.12.10 with commit d1629b5b925d
	Fixed in 5.13 with commit 8b79feffeca2

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2021-47112
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	arch/x86/kernel/kvm.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/7620a669111b52f224d006dea9e1e688e2d62c54
	https://git.kernel.org/stable/c/38b858da1c58ad46519a257764e059e663b59ff2
	https://git.kernel.org/stable/c/d1629b5b925de9b27979e929dae7fcb766daf6b6
	https://git.kernel.org/stable/c/8b79feffeca28c5459458fe78676b081e87c93a4