diff options
author | Alexandros Lamprineas <alexandros.lamprineas@arm.com> | 2021-09-02 15:01:18 +0100 |
---|---|---|
committer | Alexandros Lamprineas <alexandros.lamprineas@arm.com> | 2021-09-16 12:56:43 +0100 |
commit | 1bd5ea968e9262a09512a64bca1624818640bc5b (patch) | |
tree | 60013e310e0ba927e4f3e36430ead697f44a71bf /llvm/lib/CodeGen/CommandFlags.cpp | |
parent | 61f25daa8d1b69dd5138facd5d57a8e3dfa0c5cc (diff) | |
download | llvm-1bd5ea968e9262a09512a64bca1624818640bc5b.zip llvm-1bd5ea968e9262a09512a64bca1624818640bc5b.tar.gz llvm-1bd5ea968e9262a09512a64bca1624818640bc5b.tar.bz2 |
[ARM] Mitigate the cve-2021-35465 security vulnurability.
Recently a vulnerability issue is found in the implementation of VLLDM
instruction in the Arm Cortex-M33, Cortex-M35P and Cortex-M55. If the
VLLDM instruction is abandoned due to an exception when it is partially
completed, it is possible for subsequent non-secure handler to access
and modify the partial restored register values. This vulnerability is
identified as CVE-2021-35465.
The mitigation sequence varies between v8-m and v8.1-m as follows:
v8-m.main
---------
mrs r5, control
tst r5, #8 /* CONTROL_S.SFPA */
it ne
.inst.w 0xeeb00a40 /* vmovne s0, s0 */
1:
vlldm sp /* Lazy restore of d0-d16 and FPSCR. */
v8.1-m.main
-----------
vscclrm {vpr} /* Clear VPR. */
vlldm sp /* Lazy restore of d0-d16 and FPSCR. */
More details on
developer.arm.com/support/arm-security-updates/vlldm-instruction-security-vulnerability
Differential Revision: https://reviews.llvm.org/D109157
Diffstat (limited to 'llvm/lib/CodeGen/CommandFlags.cpp')
0 files changed, 0 insertions, 0 deletions