CVE-2024-38614 (GCVE-0-2024-38614)
Vulnerability from cvelistv5
Published
2024-06-19 13:56
Modified
2026-08-05 11:33
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
openrisc: traps: Don't send signals to kernel mode threads
OpenRISC exception handling sends signals to user processes on floating
point exceptions and trap instructions (for debugging) among others.
There is a bug where the trap handling logic may send signals to kernel
threads, we should not send these signals to kernel threads, if that
happens we treat it as an error.
This patch adds conditions to die if the kernel receives these
exceptions in kernel mode code.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2024-08-02T04:12:25.973Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/c0ed9a711e3392d73e857faa031d8d349c0d70db"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/075c0405b0d7d9fc490609e988a3af0069596538"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/cea9d0015c140af39477dd5eeb9b20233a45daa9"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/c88cfb5cea5f8f9868ef02cc9ce9183a26dcf20f"
}
],
"title": "CVE Program Container"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2024-38614",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2024-09-10T17:12:59.093856Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2024-09-11T17:34:53.276Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/openrisc/kernel/traps.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c0ed9a711e3392d73e857faa031d8d349c0d70db",
"status": "affected",
"version": "27267655c5313ba0f5a3caa9ad35d887d9a12574",
"versionType": "git"
},
{
"lessThan": "075c0405b0d7d9fc490609e988a3af0069596538",
"status": "affected",
"version": "27267655c5313ba0f5a3caa9ad35d887d9a12574",
"versionType": "git"
},
{
"lessThan": "cea9d0015c140af39477dd5eeb9b20233a45daa9",
"status": "affected",
"version": "27267655c5313ba0f5a3caa9ad35d887d9a12574",
"versionType": "git"
},
{
"lessThan": "c88cfb5cea5f8f9868ef02cc9ce9183a26dcf20f",
"status": "affected",
"version": "27267655c5313ba0f5a3caa9ad35d887d9a12574",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/openrisc/kernel/traps.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.4"
},
{
"lessThan": "6.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.33",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.8.*",
"status": "unaffected",
"version": "6.8.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.9.*",
"status": "unaffected",
"version": "6.9.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.10",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.33",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.8.12",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.9.3",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.10",
"versionStartIncluding": "6.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nopenrisc: traps: Don\u0027t send signals to kernel mode threads\n\nOpenRISC exception handling sends signals to user processes on floating\npoint exceptions and trap instructions (for debugging) among others.\nThere is a bug where the trap handling logic may send signals to kernel\nthreads, we should not send these signals to kernel threads, if that\nhappens we treat it as an error.\n\nThis patch adds conditions to die if the kernel receives these\nexceptions in kernel mode code."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The trigger requires executing code on the target \u2014 an `rt_sigreturn` with a crafted `sigcontext.fpu.fpcsr`, a `PTRACE_SETREGSET(NT_PRFPREG)` on an own child, or an FP instruction with `FPCSR.FPEE` set. No network or adjacent-network path reaches `arch/openrisc/kernel/traps.c`.\nAC:L - The attacker fully controls the FPCSR value written to the SPR by the kernel-mode `l.mtspr` in `RESTORE_ALL`/`_switch`, so the kernel-mode exception is raised deterministically on every attempt; there is no race and no memory-layout dependence.\nPR:L - Any unprivileged local user can do this \u2014 `sigreturn` on a self-delivered signal needs no capability, and `ptrace` of one\u0027s own child needs none either; no CAP_SYS_ADMIN or root gate exists on the path into `do_fpe_trap()`/`do_trap()`.\nUI:N - The attacking process triggers the kernel-mode exception entirely on its own via a syscall return path; no other user or victim action is involved.\nS:U - The corruption and the crash are confined to the kernel of the same machine; no VM, IOMMU, or other security-authority boundary is crossed.\nC:H - `force_sig_fault()` hands userspace a kernel text address in `si_addr` (`regs-\u003epc` of the supervisor-mode fault), and the clobbered `EPCR`/`ESR` cause the kernel to resume in supervisor mode with attacker-controlled registers and a user-controlled `r1`, from which kernel memory can be read out.\nI:H - Because the nested kernel-mode exception overwrites `EPCR`/`ESR` mid-`RESTORE_ALL`, the subsequent `l.rfe` returns into kernel code with `SR.SM` still set and the user\u0027s register file loaded, giving a supervisor-mode stack-pivot/state-corruption primitive rather than a clean fault.\nA:H - The signal is never delivered (the kernel-mode return path skips `do_work_pending`), so the faulting `mtspr` is re-executed and the exception re-fires in an unkillable supervisor-mode loop that hangs the CPU \u2014 and on the fixed kernel the same condition is a `die()`/oops."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T11:33:12.453Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c0ed9a711e3392d73e857faa031d8d349c0d70db"
},
{
"url": "https://git.kernel.org/stable/c/075c0405b0d7d9fc490609e988a3af0069596538"
},
{
"url": "https://git.kernel.org/stable/c/cea9d0015c140af39477dd5eeb9b20233a45daa9"
},
{
"url": "https://git.kernel.org/stable/c/c88cfb5cea5f8f9868ef02cc9ce9183a26dcf20f"
}
],
"title": "openrisc: traps: Don\u0027t send signals to kernel mode threads",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2024-38614",
"datePublished": "2024-06-19T13:56:14.753Z",
"dateReserved": "2024-06-18T19:36:34.944Z",
"dateUpdated": "2026-08-05T11:33:12.453Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"vulnrichment": {
"containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/c0ed9a711e3392d73e857faa031d8d349c0d70db\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/075c0405b0d7d9fc490609e988a3af0069596538\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/cea9d0015c140af39477dd5eeb9b20233a45daa9\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/c88cfb5cea5f8f9868ef02cc9ce9183a26dcf20f\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T04:12:25.973Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-38614\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T17:12:59.093856Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:26.586Z\"}}], \"cna\": {\"title\": \"openrisc: traps: Don\u0027t send signals to kernel mode threads\", \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"27267655c5313ba0f5a3caa9ad35d887d9a12574\", \"lessThan\": \"c0ed9a711e3392d73e857faa031d8d349c0d70db\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"27267655c5313ba0f5a3caa9ad35d887d9a12574\", \"lessThan\": \"075c0405b0d7d9fc490609e988a3af0069596538\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"27267655c5313ba0f5a3caa9ad35d887d9a12574\", \"lessThan\": \"cea9d0015c140af39477dd5eeb9b20233a45daa9\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"27267655c5313ba0f5a3caa9ad35d887d9a12574\", \"lessThan\": \"c88cfb5cea5f8f9868ef02cc9ce9183a26dcf20f\", \"versionType\": \"git\"}], \"programFiles\": [\"arch/openrisc/kernel/traps.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"6.4\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"6.4\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.6.33\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.8.12\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.8.*\"}, {\"status\": \"unaffected\", \"version\": \"6.9.3\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.9.*\"}, {\"status\": \"unaffected\", \"version\": \"6.10\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"arch/openrisc/kernel/traps.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/c0ed9a711e3392d73e857faa031d8d349c0d70db\"}, {\"url\": \"https://git.kernel.org/stable/c/075c0405b0d7d9fc490609e988a3af0069596538\"}, {\"url\": \"https://git.kernel.org/stable/c/cea9d0015c140af39477dd5eeb9b20233a45daa9\"}, {\"url\": \"https://git.kernel.org/stable/c/c88cfb5cea5f8f9868ef02cc9ce9183a26dcf20f\"}], \"x_generator\": {\"engine\": \"bippy-5f407fcff5a0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nopenrisc: traps: Don\u0027t send signals to kernel mode threads\\n\\nOpenRISC exception handling sends signals to user processes on floating\\npoint exceptions and trap instructions (for debugging) among others.\\nThere is a bug where the trap handling logic may send signals to kernel\\nthreads, we should not send these signals to kernel threads, if that\\nhappens we treat it as an error.\\n\\nThis patch adds conditions to die if the kernel receives these\\nexceptions in kernel mode code.\"}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2024-12-19T09:05:40.579Z\"}}}",
"cveMetadata": "{\"cveId\": \"CVE-2024-38614\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2024-12-19T09:05:40.579Z\", \"dateReserved\": \"2024-06-18T19:36:34.944Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-06-19T13:56:14.753Z\", \"assignerShortName\": \"Linux\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.1"
}
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…