Files
vuln-cve/data/2022/48xxx/CVE-2022-48943.json
T

214 lines
12 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-2022-48943",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2024-08-22T01:27:53.623Z",
"datePublished": "2024-08-22T03:30:14.027Z",
"dateUpdated": "2026-08-05T08:53:03.401Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-08-05T08:53:03.401Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: x86/mmu: make apf token non-zero to fix bug\n\nIn current async pagefault logic, when a page is ready, KVM relies on\nkvm_arch_can_dequeue_async_page_present() to determine whether to deliver\na READY event to the Guest. This function test token value of struct\nkvm_vcpu_pv_apf_data, which must be reset to zero by Guest kernel when a\nREADY event is finished by Guest. If value is zero meaning that a READY\nevent is done, so the KVM can deliver another.\nBut the kvm_arch_setup_async_pf() may produce a valid token with zero\nvalue, which is confused with previous mention and may lead the loss of\nthis READY event.\n\nThis bug may cause task blocked forever in Guest:\n INFO: task stress:7532 blocked for more than 1254 seconds.\n Not tainted 5.10.0 #16\n \"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\n task:stress state:D stack: 0 pid: 7532 ppid: 1409\n flags:0x00000080\n Call Trace:\n __schedule+0x1e7/0x650\n schedule+0x46/0xb0\n kvm_async_pf_task_wait_schedule+0xad/0xe0\n ? exit_to_user_mode_prepare+0x60/0x70\n __kvm_handle_async_pf+0x4f/0xb0\n ? asm_exc_page_fault+0x8/0x30\n exc_page_fault+0x6f/0x110\n ? asm_exc_page_fault+0x8/0x30\n asm_exc_page_fault+0x1e/0x30\n RIP: 0033:0x402d00\n RSP: 002b:00007ffd31912500 EFLAGS: 00010206\n RAX: 0000000000071000 RBX: ffffffffffffffff RCX: 00000000021a32b0\n RDX: 000000000007d011 RSI: 000000000007d000 RDI: 00000000021262b0\n RBP: 00000000021262b0 R08: 0000000000000003 R09: 0000000000000086\n R10: 00000000000000eb R11: 00007fefbdf2baa0 R12: 0000000000000000\n R13: 0000000000000002 R14: 000000000007d000 R15: 0000000000001000"
}
],
"metrics": [
{
"cvssV3_1": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H",
"baseScore": 7.1,
"baseSeverity": "HIGH"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only when a KVM guest takes a paravirtual async page fault (KVM_RUN → faultin → kvm_arch_setup_async_pf), which requires local code execution inside a VM or local /dev/kvm use—not remote packet processing.\nAC:L - On overcommitted KVM hosts (common cloud deployments) async PF is routinely exercised; token 0 is produced deterministically on vCPU 0 when (id<<12)==0, and concurrent READY completions that drop that event are driven by attacker/workload-controlled multi-threaded memory stress, as in the original hang report.\nPR:N - No host privileges are required—an ordinary tenant VM triggers this via normal guest userspace page faults after the guest kernel enables MSR_KVM_ASYNC_PF_EN, matching other guest-triggerable KVM DoS scores (PR:N relative to the host).\nUI:N - No separate victim action is needed; guest memory accesses under host reclaim/async PF delivery alone hit the vulnerable token path.\nS:C - The vulnerable code is host KVM MMU/async-PF handling, but the impact is permanent denial of guest task/VM progress across the hypervisor–guest (and nested L1/L2) security boundary, consistent with other host-KVM guest-availability DoS scorings.\nC:N - This is solely a confused zero token versus the READY-slot-empty sentinel causing a lost wakeup; there is no OOB read, UAF, or other disclosure primitive.\nI:N - No memory corruption, write primitive, or control-flow hijack occurs—only failure to deliver a READY notification for a valid token value of zero.\nA:H - A lost READY leaves the guest task blocked forever in TASK_UNINTERRUPTIBLE (D state), which is a complete denial of that workload’s availability and can stall nested guests depending on the hung threads."
}
]
}
],
"affected": [
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"arch/x86/kvm/mmu/mmu.c"
],
"versions": [
{
"version": "2635b5c4a0e407b84f68e188c719f28ba0e9ae1b",
"lessThan": "72fdfc75d4217b32363cc80def3de2cb3fef3f02",
"status": "affected",
"versionType": "git"
},
{
"version": "2635b5c4a0e407b84f68e188c719f28ba0e9ae1b",
"lessThan": "4c3644b6c96c5daa5149e5abddc07234eea47c7c",
"status": "affected",
"versionType": "git"
},
{
"version": "2635b5c4a0e407b84f68e188c719f28ba0e9ae1b",
"lessThan": "62040f5cd7d937de547836e747b6aa8212fec573",
"status": "affected",
"versionType": "git"
},
{
"version": "2635b5c4a0e407b84f68e188c719f28ba0e9ae1b",
"lessThan": "6f3c1fc53d86d580d8d6d749c4af23705e4f6f79",
"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/kvm/mmu/mmu.c"
],
"versions": [
{
"version": "5.8",
"status": "affected"
},
{
"version": "0",
"lessThan": "5.8",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.10.103",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.15.26",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.16.12",
"lessThanOrEqual": "5.16.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.17",
"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": "5.8",
"versionEndExcluding": "5.10.103"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.8",
"versionEndExcluding": "5.15.26"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.8",
"versionEndExcluding": "5.16.12"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.8",
"versionEndExcluding": "5.17"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/72fdfc75d4217b32363cc80def3de2cb3fef3f02"
},
{
"url": "https://git.kernel.org/stable/c/4c3644b6c96c5daa5149e5abddc07234eea47c7c"
},
{
"url": "https://git.kernel.org/stable/c/62040f5cd7d937de547836e747b6aa8212fec573"
},
{
"url": "https://git.kernel.org/stable/c/6f3c1fc53d86d580d8d6d749c4af23705e4f6f79"
}
],
"title": "KVM: x86/mmu: make apf token non-zero to fix bug",
"x_generator": {
"engine": "bippy-1.2.0"
}
},
"adp": [
{
"metrics": [
{
"other": {
"type": "ssvc",
"content": {
"id": "CVE-2022-48943",
"role": "CISA Coordinator",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2024-09-10T15:33:08.943998Z"
}
}
}
],
"title": "CISA ADP Vulnrichment",
"providerMetadata": {
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP",
"dateUpdated": "2024-09-12T17:33:10.679Z"
}
}
]
}
}