diff options
| author | Ahmed Bougacha <ahmed@bougacha.org> | 2024-07-22 21:28:01 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-22 21:28:01 -0700 |
| commit | d7e8a7487cd793df0fdf51a94afc25ab0a325a9a (patch) | |
| tree | b4dae1d5b81b780a9680bf66ae4de33fddc72668 /lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface | |
| parent | 67937a3f969aaf97a745a45281a0d22273bff713 (diff) | |
[AArch64][PAC] Lower auth/resign into checked sequence. (#79024)
This introduces 3 hardening modes in the authentication step of
auth/resign lowering:
- unchecked, which uses the AUT instructions as-is
- poison, which detects authentication failure (using an XPAC+CMP
sequence), explicitly yielding the XPAC result rather than the
AUT result, to avoid leaking
- trap, which additionally traps on authentication failure,
using BRK #0xC470 + key (IA C470, IB C471, DA C472, DB C473.)
Not all modes are necessarily useful in all contexts, and there
are more performant alternative lowerings in specific contexts
(e.g., when I/D TBI enablement is a target ABI guarantee.)
These will be implemented separately.
This is controlled by the `ptrauth-auth-traps` function attributes,
and can be overridden using `-aarch64-ptrauth-auth-checks=`.
This also adds the FPAC extension, which we haven't needed
before, to improve isel when we can rely on HW checking.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface')
0 files changed, 0 insertions, 0 deletions
