{"id":"CVE-2024-58084","state":"PUBLISHED","title":"firmware: qcom: scm: Fix missing read barrier in qcom_scm_get_tzmem_pool()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nfirmware: qcom: scm: Fix missing read barrier in qcom_scm_get_tzmem_pool()\n\nCommit 2e4955167ec5 (\"firmware: qcom: scm: Fix __scm and waitq\ncompletion variable initialization\") introduced a write barrier in probe\nfunction to store global '__scm' variable.  We all known barriers are\npaired (see memory-barriers.txt: \"Note that write barriers should\nnormally be paired with read or address-dependency barriers\"), therefore\naccessing it from concurrent contexts requires read barrier.  Previous\ncommit added such barrier in qcom_scm_is_available(), so let's use that\ndirectly.\n\nLack of this read barrier can result in fetching stale '__scm' variable\nvalue, NULL, and dereferencing it.\n\nNote that barrier in qcom_scm_is_available() satisfies here the control\ndependency.","publishedAt":"2025-03-06T16:22:31.998Z","updatedAt":"2026-05-11T21:02:59.280Z","severity":{"score":5.5,"label":"Medium","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","source":"CISA-ADP"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"449d0d84bcd8246b508d07995326d13c54488b8c","status":"affected","lessThan":"fee921e3c641f64185abee83f9a6e65f0b380682","versionType":"git"},{"version":"449d0d84bcd8246b508d07995326d13c54488b8c","status":"affected","lessThan":"e03db7c1255ebabba5e1a447754faeb138de15a2","versionType":"git"},{"version":"449d0d84bcd8246b508d07995326d13c54488b8c","status":"affected","lessThan":"b628510397b5cafa1f5d3e848a28affd1c635302","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/firmware/qcom/qcom_scm.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.11","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.11","versionType":"semver"},{"version":"6.12.14","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13.3","status":"unaffected","lessThanOrEqual":"6.13.*","versionType":"semver"},{"version":"6.14","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/firmware/qcom/qcom_scm.c"]}],"references":["https://git.kernel.org/stable/c/fee921e3c641f64185abee83f9a6e65f0b380682","https://git.kernel.org/stable/c/e03db7c1255ebabba5e1a447754faeb138de15a2","https://git.kernel.org/stable/c/b628510397b5cafa1f5d3e848a28affd1c635302"],"weaknesses":["CWE-476"],"ingestedAt":"2026-10-29T20:08:12.933Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/58xxx/CVE-2024-58084.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-58084","state":"PUBLISHED","datePublished":"2025-03-06T16:22:31.998Z","dateUpdated":"2026-05-11T21:02:59.280Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-03-06T15:52:09.184Z"},"containers":{"cna":{"title":"firmware: qcom: scm: Fix missing read barrier in qcom_scm_get_tzmem_pool()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nfirmware: qcom: scm: Fix missing read barrier in qcom_scm_get_tzmem_pool()\n\nCommit 2e4955167ec5 (\"firmware: qcom: scm: Fix __scm and waitq\ncompletion variable initialization\") introduced a write barrier in probe\nfunction to store global '__scm' variable.  We all known barriers are\npaired (see memory-barriers.txt: \"Note that write barriers should\nnormally be paired with read or address-dependency barriers\"), therefore\naccessing it from concurrent contexts requires read barrier.  Previous\ncommit added such barrier in qcom_scm_is_available(), so let's use that\ndirectly.\n\nLack of this read barrier can result in fetching stale '__scm' variable\nvalue, NULL, and dereferencing it.\n\nNote that barrier in qcom_scm_is_available() satisfies here the control\ndependency."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"449d0d84bcd8246b508d07995326d13c54488b8c","status":"affected","lessThan":"fee921e3c641f64185abee83f9a6e65f0b380682","versionType":"git"},{"version":"449d0d84bcd8246b508d07995326d13c54488b8c","status":"affected","lessThan":"e03db7c1255ebabba5e1a447754faeb138de15a2","versionType":"git"},{"version":"449d0d84bcd8246b508d07995326d13c54488b8c","status":"affected","lessThan":"b628510397b5cafa1f5d3e848a28affd1c635302","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/firmware/qcom/qcom_scm.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.11","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.11","versionType":"semver"},{"version":"6.12.14","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13.3","status":"unaffected","lessThanOrEqual":"6.13.*","versionType":"semver"},{"version":"6.14","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/firmware/qcom/qcom_scm.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/fee921e3c641f64185abee83f9a6e65f0b380682"},{"url":"https://git.kernel.org/stable/c/e03db7c1255ebabba5e1a447754faeb138de15a2"},{"url":"https://git.kernel.org/stable/c/b628510397b5cafa1f5d3e848a28affd1c635302"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T21:02:59.280Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.11","versionEndExcluding":"6.12.14"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.11","versionEndExcluding":"6.13.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.11","versionEndExcluding":"6.14"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":5.5,"attackVector":"LOCAL","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"id":"CVE-2024-58084","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2025-10-01T19:27:08.387078Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-476","lang":"en","type":"CWE","description":"CWE-476 NULL Pointer Dereference"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-10-01T19:36:35.655Z"}}]}}}