Files
vuln-cve/data/2022/49xxx/CVE-2022-49001.json
T

197 lines
10 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-49001",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2024-08-22T01:27:53.642Z",
"datePublished": "2024-10-21T20:06:15.443Z",
"dateUpdated": "2026-08-05T08:53:23.800Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-08-05T08:53:23.800Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nriscv: fix race when vmap stack overflow\n\nCurrently, when detecting vmap stack overflow, riscv firstly switches\nto the so called shadow stack, then use this shadow stack to call the\nget_overflow_stack() to get the overflow stack. However, there's\na race here if two or more harts use the same shadow stack at the same\ntime.\n\nTo solve this race, we introduce spin_shadow_stack atomic var, which\nwill be swap between its own address and 0 in atomic way, when the\nvar is set, it means the shadow_stack is being used; when the var\nis cleared, it means the shadow_stack isn't being used.\n\n[Palmer: Add AQ to the swap, and also some comments.]"
}
],
"metrics": [
{
"cvssV3_1": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
"baseScore": 7,
"baseSeverity": "HIGH"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable path is RISC-V kernel exception entry (`handle_kernel_stack_overflow` in `entry.S`) when a hart’s kernel stack has already overflowed; it is reached only via local kernel execution on the victim host, not via network protocols or physical buses.\nAC:H - Exploitation requires two or more harts to enter the overflow handler and share the global `shadow_stack` in the same narrow window; inducing simultaneous kernel stack exhaustion is an exceptional error condition with cross-CPU timing the attacker cannot reliably force at will, unlike races built from ordinary attacker-controlled ops.\nPR:L - An unprivileged local user can drive deep kernel call chains (syscalls, nested faults, filesystem recursion) that exhaust a task’s kernel stack on a multi-hart RISC-V system; real root or init-namespace admin rights are not required, and `CONFIG_VMAP_STACK` defaults to y.\nUI:N - No separate victim action (mount, open crafted file, etc.) is required; the attacker’s own workloads on multiple CPUs are sufficient to approach the overflow path.\nS:U - Corruption and panic stay inside the host kernel’s authority (shared shadow stack / overflow handling); this is not a VM escape, IOMMU bypass, or other cross-authority boundary break.\nC:H - Concurrent harts overwrite the shared `shadow_stack` while one may still be executing `get_overflow_stack()` on it, corrupting saved frames and register state (including user-influenced syscall args)—memory corruption that can be leveraged for information disclosure.\nI:H - The same race smashes another hart’s live shadow-stack frame and can load a wrong overflow SP before writing a full `pt_regs`, yielding out-of-bounds kernel writes and potential control-flow hijack via corrupted return/stack state.\nA:H - `handle_bad_stack()` always `panic(\"Kernel stack overflow\")`, and racing on the shared shadow stack can oops or corrupt state before that panic—full kernel availability loss."
}
]
}
],
"affected": [
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"arch/riscv/include/asm/asm.h",
"arch/riscv/kernel/entry.S",
"arch/riscv/kernel/traps.c"
],
"versions": [
{
"version": "31da94c25aea835ceac00575a9fd206c5a833fed",
"lessThan": "ac00301adb19df54f2eae1efc4bad7447c0156ce",
"status": "affected",
"versionType": "git"
},
{
"version": "31da94c25aea835ceac00575a9fd206c5a833fed",
"lessThan": "879fabc5a95401d9bce357e4b1d24ae4a360a81f",
"status": "affected",
"versionType": "git"
},
{
"version": "31da94c25aea835ceac00575a9fd206c5a833fed",
"lessThan": "7e1864332fbc1b993659eab7974da9fe8bf8c128",
"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/riscv/include/asm/asm.h",
"arch/riscv/kernel/entry.S",
"arch/riscv/kernel/traps.c"
],
"versions": [
{
"version": "5.14",
"status": "affected"
},
{
"version": "0",
"lessThan": "5.14",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.15.82",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.0.12",
"lessThanOrEqual": "6.0.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.1",
"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.14",
"versionEndExcluding": "5.15.82"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.14",
"versionEndExcluding": "6.0.12"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.14",
"versionEndExcluding": "6.1"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/ac00301adb19df54f2eae1efc4bad7447c0156ce"
},
{
"url": "https://git.kernel.org/stable/c/879fabc5a95401d9bce357e4b1d24ae4a360a81f"
},
{
"url": "https://git.kernel.org/stable/c/7e1864332fbc1b993659eab7974da9fe8bf8c128"
}
],
"title": "riscv: fix race when vmap stack overflow",
"x_generator": {
"engine": "bippy-1.2.0"
}
},
"adp": [
{
"metrics": [
{
"other": {
"type": "ssvc",
"content": {
"id": "CVE-2022-49001",
"role": "CISA Coordinator",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2024-10-22T13:15:10.722004Z"
}
}
}
],
"title": "CISA ADP Vulnrichment",
"providerMetadata": {
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP",
"dateUpdated": "2024-10-22T13:18:40.637Z"
}
}
]
}
}