In the Linux kernel, the following vulnerability has been resolved:
x86/tdx: Fix "in-kernel MMIO" check
TDX only supports kernel-initiated MMIO operations. The handle_mmio() function checks if the #VE exception occurred in the kernel and rejects the operation if it did not.
However, userspace can deceive the kernel into performing MMIO on its behalf. For example, if userspace can point a syscall to an MMIO address, syscall does getuser() or putuser() on it, triggering MMIO #VE. The kernel will treat the #VE as in-kernel MMIO.
Ensure that the target MMIO address is within the kernel before decoding instruction.
[
{
"signature_version": "v1",
"id": "CVE-2024-47727-048d4089",
"digest": {
"line_hashes": [
"122385512602933487518830873783640964123",
"282106333341760788016738871094417225385",
"16818935529364300324015723763229193299",
"161824241587000359043582546107581393738",
"57563036316970958652005095151513108793",
"12737281661934228521680337190808719643",
"126228725624340640864623787595333332765"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bca2e29f7e26ce7c3522f8b324c0bd85612f68e3",
"deprecated": false,
"target": {
"file": "arch/x86/coco/tdx/tdx.c"
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"id": "CVE-2024-47727-17dfd51c",
"digest": {
"length": 1889.0,
"function_hash": "38558636830596302405944235086692241023"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4c0c5dcb5471de5fc8f0a1c4980e5815339e1cee",
"deprecated": false,
"target": {
"function": "handle_mmio",
"file": "arch/x86/coco/tdx/tdx.c"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"id": "CVE-2024-47727-5babeda9",
"digest": {
"length": 1824.0,
"function_hash": "109438881305018231890621790562945701248"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@25703a3c980e21548774eea8c8a87a75c5c8f58c",
"deprecated": false,
"target": {
"function": "handle_mmio",
"file": "arch/x86/coco/tdx/tdx.c"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"id": "CVE-2024-47727-763d9c86",
"digest": {
"length": 1889.0,
"function_hash": "38558636830596302405944235086692241023"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@18ecd5b74682839e7cdafb7cd1ec106df7baa18c",
"deprecated": false,
"target": {
"function": "handle_mmio",
"file": "arch/x86/coco/tdx/tdx.c"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"id": "CVE-2024-47727-850dce7f",
"digest": {
"line_hashes": [
"92627318323006023015775048661508643811",
"223083126531036330190447971190038593559",
"142841427320096018214756282490843160336",
"267868491399620188224422513038734500312",
"57563036316970958652005095151513108793",
"12737281661934228521680337190808719643",
"126228725624340640864623787595333332765"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@25703a3c980e21548774eea8c8a87a75c5c8f58c",
"deprecated": false,
"target": {
"file": "arch/x86/coco/tdx/tdx.c"
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"id": "CVE-2024-47727-8579bcff",
"digest": {
"line_hashes": [
"122385512602933487518830873783640964123",
"282106333341760788016738871094417225385",
"16818935529364300324015723763229193299",
"161824241587000359043582546107581393738",
"57563036316970958652005095151513108793",
"12737281661934228521680337190808719643",
"126228725624340640864623787595333332765"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@18ecd5b74682839e7cdafb7cd1ec106df7baa18c",
"deprecated": false,
"target": {
"file": "arch/x86/coco/tdx/tdx.c"
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"id": "CVE-2024-47727-89a1d6ed",
"digest": {
"length": 1889.0,
"function_hash": "38558636830596302405944235086692241023"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d4fc4d01471528da8a9797a065982e05090e1d81",
"deprecated": false,
"target": {
"function": "handle_mmio",
"file": "arch/x86/coco/tdx/tdx.c"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"id": "CVE-2024-47727-9fb5d3be",
"digest": {
"line_hashes": [
"92627318323006023015775048661508643811",
"1505278616946561545593990465348442714",
"13989017341671341506625951964702587970",
"27398434390513913926747025586134157899",
"57563036316970958652005095151513108793",
"12737281661934228521680337190808719643",
"126228725624340640864623787595333332765"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4c0c5dcb5471de5fc8f0a1c4980e5815339e1cee",
"deprecated": false,
"target": {
"file": "arch/x86/coco/tdx/tdx.c"
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"id": "CVE-2024-47727-ac396cae",
"digest": {
"length": 1889.0,
"function_hash": "38558636830596302405944235086692241023"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bca2e29f7e26ce7c3522f8b324c0bd85612f68e3",
"deprecated": false,
"target": {
"function": "handle_mmio",
"file": "arch/x86/coco/tdx/tdx.c"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"id": "CVE-2024-47727-b107ddf7",
"digest": {
"line_hashes": [
"122385512602933487518830873783640964123",
"282106333341760788016738871094417225385",
"16818935529364300324015723763229193299",
"161824241587000359043582546107581393738",
"57563036316970958652005095151513108793",
"12737281661934228521680337190808719643",
"126228725624340640864623787595333332765"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d4fc4d01471528da8a9797a065982e05090e1d81",
"deprecated": false,
"target": {
"file": "arch/x86/coco/tdx/tdx.c"
},
"signature_type": "Line"
}
]