Files
vuln-cve/data/2023/52xxx/CVE-2023-52874.json
T

221 lines
11 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2023-52874",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2024-05-21T15:19:24.264Z",
"datePublished": "2024-05-21T15:32:07.937Z",
"dateUpdated": "2026-08-05T09:11:47.346Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-08-05T09:11:47.346Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/tdx: Zero out the missing RSI in TDX_HYPERCALL macro\n\nIn the TDX_HYPERCALL asm, after the TDCALL instruction returns from the\nuntrusted VMM, the registers that the TDX guest shares to the VMM need\nto be cleared to avoid speculative execution of VMM-provided values.\n\nRSI is specified in the bitmap of those registers, but it is missing\nwhen zeroing out those registers in the current TDX_HYPERCALL.\n\nIt was there when it was originally added in commit 752d13305c78\n(\"x86/tdx: Expand __tdx_hypercall() to handle more arguments\"), but was\nlater removed in commit 1e70c680375a (\"x86/tdx: Do not corrupt\nframe-pointer in __tdx_hypercall()\"), which was correct because %rsi is\nlater restored in the \"pop %rsi\". However a later commit 7a3a401874be\n(\"x86/tdx: Drop flags from __tdx_hypercall()\") removed that \"pop %rsi\"\nbut forgot to add the \"xor %rsi, %rsi\" back.\n\nFix by adding it back."
}
],
"metrics": [
{
"cvssV3_1": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N",
"baseScore": 7.1,
"baseSeverity": "HIGH"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The attacker must be the local untrusted VMM/hypervisor on the same machine, injecting values via the TDVMCALL hypercall interface after guest #VE handling (MMIO, port I/O, HLT, MSR, CPUID); this is not reachable over the network.\nAC:L - The VMM fully controls RSI on every hypercall return and can induce frequent hypercalls through device emulation and #VE delivery, with host-side cache timing inherent to its position on the CPU.\nPR:N - Relative to the vulnerable TDX guest, a malicious VMM needs no guest account or capabilities; TDX’s threat model treats the VMM as an external untrusted party with no authorized access to TD secrets.\nUI:N - Normal guest operation (I/O, HLT, MSR, CPUID, MAP_GPA) triggers __tdx_hypercall paths without any additional victim user action.\nS:C - TDX establishes a confidentiality boundary between guest and VMM; leaving VMM-controlled RSI available for guest speculation can leak TD memory to the VMM across that isolation boundary.\nC:H - Uncleared VMM-controlled RSI can feed speculative gadgets (e.g., as a pointer/index) and disclose arbitrary guest memory via cache side channels—the exact class of attack the register-clearing was added to prevent.\nI:N - Impact is speculative side-channel disclosure only; speculative writes do not retire, and there is no architectural memory corruption or control-flow hijack.\nA:N - The missing xor %rsi,%rsi does not cause oops, panic, hang, or other availability loss; the bug is purely a speculative-execution confidentiality mitigation gap."
}
]
}
],
"affected": [
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"arch/x86/coco/tdx/tdcall.S"
],
"versions": [
{
"version": "7a3a401874bea02f568aa416ac29170d8cde0dc2",
"lessThan": "2191950d35d8f81620ea8d4e04d983f664fe3a8a",
"status": "affected",
"versionType": "git"
},
{
"version": "7a3a401874bea02f568aa416ac29170d8cde0dc2",
"lessThan": "de4c5bacca4f50233f1f791bec9eeb4dee1b14cd",
"status": "affected",
"versionType": "git"
},
{
"version": "7a3a401874bea02f568aa416ac29170d8cde0dc2",
"lessThan": "5d092b66119d774853cc9308522620299048a662",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"arch/x86/coco/tdx/tdcall.S"
],
"versions": [
{
"version": "6.4",
"status": "affected"
},
{
"version": "0",
"lessThan": "6.4",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.5.12",
"lessThanOrEqual": "6.5.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.6.2",
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.7",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.4",
"versionEndExcluding": "6.5.12"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.4",
"versionEndExcluding": "6.6.2"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.4",
"versionEndExcluding": "6.7"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/2191950d35d8f81620ea8d4e04d983f664fe3a8a"
},
{
"url": "https://git.kernel.org/stable/c/de4c5bacca4f50233f1f791bec9eeb4dee1b14cd"
},
{
"url": "https://git.kernel.org/stable/c/5d092b66119d774853cc9308522620299048a662"
}
],
"title": "x86/tdx: Zero out the missing RSI in TDX_HYPERCALL macro",
"x_generator": {
"engine": "bippy-1.2.0"
}
},
"adp": [
{
"providerMetadata": {
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE",
"dateUpdated": "2024-08-02T23:11:36.236Z"
},
"title": "CVE Program Container",
"references": [
{
"url": "https://git.kernel.org/stable/c/2191950d35d8f81620ea8d4e04d983f664fe3a8a",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/de4c5bacca4f50233f1f791bec9eeb4dee1b14cd",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/5d092b66119d774853cc9308522620299048a662",
"tags": [
"x_transferred"
]
}
]
},
{
"metrics": [
{
"other": {
"type": "ssvc",
"content": {
"id": "CVE-2023-52874",
"role": "CISA Coordinator",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2024-09-10T15:36:24.980070Z"
}
}
}
],
"title": "CISA ADP Vulnrichment",
"providerMetadata": {
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP",
"dateUpdated": "2024-09-11T17:32:54.047Z"
}
}
]
}
}