Subject: CVE-2024-46794: x86/tdx: Fix data leak in mmio_read()

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

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

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

x86/tdx: Fix data leak in mmio_read()

The mmio_read() function makes a TDVMCALL to retrieve MMIO data for an
address from the VMM.

Sean noticed that mmio_read() unintentionally exposes the value of an
initialized variable (val) on the stack to the VMM.

This variable is only needed as an output value. It did not need to be
passed to the VMM in the first place.

Do not send the original value of *val to the VMM.

[ dhansen: clarify what 'val' is used for. ]

The Linux kernel CVE team has assigned CVE-2024-46794 to this issue.

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

	Issue introduced in 5.19 with commit 31d58c4e557d and fixed in 6.1.110 with commit 26c6af49d26f
	Issue introduced in 5.19 with commit 31d58c4e557d and fixed in 6.6.51 with commit ef00818c50cf
	Issue introduced in 5.19 with commit 31d58c4e557d and fixed in 6.10.10 with commit b55ce742afcb
	Issue introduced in 5.19 with commit 31d58c4e557d and fixed in 6.11 with commit b6fb565a2d15

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-2024-46794
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/coco/tdx/tdx.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/26c6af49d26ffc377e392e30d4086db19eed0ef7
	https://git.kernel.org/stable/c/ef00818c50cf55a3a56bd9a9fae867c92dfb84e7
	https://git.kernel.org/stable/c/b55ce742afcb8e8189d82f2f1e635ba1b5a461fa
	https://git.kernel.org/stable/c/b6fb565a2d15277896583d471b21bc14a0c99661