CVE-2024-31852: Medium severity llvm llvm vulnerability
LLVM before 18.1.3 generates code in which the LR register can be overwritten without data being saved to the stack and thus there can sometimes be an exploitable error in the flow of control. This affects the ARM backend and can be demonstrated with Clang. NOTE: the vendor perspective is "we don't have strong objections for a CVE to be created ... It does seem that the likelihood of this miscompile enabling an exploit remains very low because the miscompile resulting in this JOP gadget is such that the function is most likely to crash on most valid inputs to the function. So if this function is covered by any testing the miscompile is most likely to be discovered before the binary is shipped to production."
Other sources
LLVM before 18.1.3 generates code in which the LR register can be overwritten without data being saved to the stack, and thus there can sometimes be an exploitable error in the flow of control. This affects the ARM backend and can be demonstrated with Clang. NOTE: the vendor perspective is "we don't have strong objections for a CVE to be created ... It does seem that the likelihood of this miscompile enabling an exploit remains very low, because the miscompile resulting in this JOP gadget is such that the function is most likely to crash on most valid inputs to the function. So, if this function is covered by any testing, the miscompile is most likely to be discovered before the binary is shipped to production."
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.75.0-9 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 18.1.2-2 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 18.1.2-3 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.72.0-8 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 16.0.0-1 - Upgrade
Upgrade
LLVM/Clang (ARM backend)to a version that resolves this vulnerability.Fixed in 18.1.3
Event History
Frequently Asked Questions
What is the severity of CVE-2024-31852?
CVE-2024-31852 is considered a critical vulnerability due to the potential for control flow errors that may lead to exploitability.
How do I fix CVE-2024-31852?
To mitigate CVE-2024-31852, update LLVM and Clang to version 18.1.3 or later.
Which versions of LLVM are affected by CVE-2024-31852?
CVE-2024-31852 affects all versions of LLVM prior to 18.1.3.
Are there any specific platforms affected by CVE-2024-31852?
CVE-2024-31852 impacts the ARM backend of LLVM and Clang.
What type of systems are vulnerable to CVE-2024-31852?
Systems utilizing LLVM or Clang versions before 18.1.3, specifically on ARM architectures, are vulnerable to CVE-2024-31852.