firmware: qcom: scm: Fix missing read barrier in qcom_scm_get_tzmem_pool()
In the Linux kernel, the following vulnerability has been resolved: firmware: qcom: scm: Fix missing read barrier in qcom_scm_get_tzmem_pool() Commit 2e4955167ec5 ("firmware: qcom: scm: Fix __scm and waitq completion variable initialization") introduced a write barrier in probe function to store global '__scm' variable. We all known barriers are paired (see memory-barriers.txt: "Note that write barriers should normally be paired with read or address-dependency barriers"), therefore accessing it from concurrent contexts requires read barrier. Previous commit added such barrier in qcom_scm_is_available(), so let's use that directly. Lack of this read barrier can result in fetching stale '__scm' variable value, NULL, and dereferencing it. Note that barrier in qcom_scm_is_available() satisfies here the control dependency.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 6.12.14, 6.13.3
- CVEs
- CVE-2024-58084
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 03:48 UTC · Revision 1
Source evidence
firmware: qcom: scm: Fix missing read barrier in qcom_scm_get_tzmem_pool()
core-osv · Original sourcePublished 6 Mar 2025, 16:22 UTC
In the Linux kernel, the following vulnerability has been resolved: firmware: qcom: scm: Fix missing read barrier in qcom_scm_get_tzmem_pool() Commit 2e4955167ec5 ("firmware: qcom: scm: Fix __scm and waitq completion variable initialization") introduced a write barrier in probe function to store global '__scm' variable. We all known barriers are paired (see memory-barriers.txt: "Note that write barriers should normally be paired with read or address-dependency barriers"), therefore accessing it from concurrent contexts requires read barrier. Previous commit added such barrier in qcom_scm_is_available(), so let's use that directly. Lack of this read barrier can result in fetching stale '__scm' variable value, NULL, and dereferencing it. Note that barrier in qcom_scm_is_available() satisfies here the control dependency.
osv:CVE-2024-58084
Kernel
Fixed versions: 6.12.14, 6.13.3
Complete source record
{
"id": "4cc11056d782379b3b4a8c963c38532122980825b87a950adb8f85a840da0151",
"url": "https://osv.dev/vulnerability/CVE-2024-58084",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "firmware: qcom: scm: Fix missing read barrier in qcom_scm_get_tzmem_pool()",
"summary": "In the Linux kernel, the following vulnerability has been resolved: firmware: qcom: scm: Fix missing read barrier in qcom_scm_get_tzmem_pool() Commit 2e4955167ec5 (\"firmware: qcom: scm: Fix __scm and waitq completion variable initialization\") introduced a write barrier in probe function to store global '__scm' variable. We all known barriers are paired (see memory-barriers.txt: \"Note that write barriers should normally be paired with read or address-dependency barriers\"), therefore accessing it from concurrent contexts requires read barrier. Previous commit added such barrier in qcom_scm_is_available(), so let's use that directly. Lack of this read barrier can result in fetching stale '__scm' variable value, NULL, and dereferencing it. Note that barrier in qcom_scm_is_available() satisfies here the control dependency.",
"evidence": "osv:CVE-2024-58084",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "6.12.14",
"evidence": "/affected/1/ranges"
},
{
"value": "6.13.3",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "medium",
"structured": {
"id": "CVE-2024-58084",
"aliases": [
"CVE-2024-58084"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "449d0d84bcd8246b508d07995326d13c54488b8c"
},
{
"fixed": "fee921e3c641f64185abee83f9a6e65f0b380682"
},
{
"fixed": "e03db7c1255ebabba5e1a447754faeb138de15a2"
},
{
"fixed": "b628510397b5cafa1f5d3e848a28affd1c635302"
}
]
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-58084.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.11.0"
},
{
"fixed": "6.12.14"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.13.0"
},
{
"fixed": "6.13.3"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-58084.json"
}
}
],
"modified": "2026-10-28T02:30:25.606078692Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/b628510397b5cafa1f5d3e848a28affd1c635302",
"https://git.kernel.org/stable/c/e03db7c1255ebabba5e1a447754faeb138de15a2",
"https://git.kernel.org/stable/c/fee921e3c641f64185abee83f9a6e65f0b380682",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/58xxx/CVE-2024-58084.json",
"https://nvd.nist.gov/vuln/detail/CVE-2024-58084",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/58xxx/CVE-2024-58084.json"
}
},
"related_cves": [
{
"value": "CVE-2024-58084",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 492262,
"published_at": "2025-03-06T16:22:31.998+00:00"
}