PACMAN is a novel hardware attack technique that can allow attackers to bypass Pointer Authentication (PAC) on the Apple M1 CPU.
The pointer authentication codes (PACs) allow to detect and guard against unexpected changes to pointers in memory.
Pointer authentication implements a special CPU instruction to add a cryptographic signature (PAC) to unused high-order bits of a pointer before storing the pointer. The signature is removed and authenticated by another instruction after reading the pointer back from memory. Any change to the stored value between the write and the read invalidates the signature, an event that is interpreted as memory corruption and set a high-order bit in the pointer to invalidate the pointer.
The researchers who devised the attack technique speculate that the principles behind the PACMAN attacks could be used for much more than just PAC.
“We leverage speculative execution attacks to bypass an important memory protection mechanism, ARM Pointer Authentication, a security feature that is used to enforce pointer integrity. We present PACMAN, a novel attack methodology that speculatively leaks PAC verification results via micro-architectural side channels without causing any crashes.” reads the research paper published by the researchers. “Our attack removes the primary barrier to conducting control-flow hijacking attacks on a platform protected using Pointer Authentication.”
The researchers pointed out that the PACMAN attack is just an exploitation technique, and it is not enough to compromise a system. Anyway, the bad news is that the hardware mechanisms used by PACMAN cannot be patched with software updates.
The researchers devised a PAC oracle to distinguish between a correct PAC and an incorrect one without causing any system crashes.
An attacker can “brute-force the correct PAC value while suppressing crashes and construct a control-flow hijacking attack on a PA-enabled victim program or operating system. The key insight of our PACMAN attack is to use speculative execution to stealthily leak PAC verification results via microarchitectural side channels.”
“A PACMAN gadget consists of two operations: 1) a pointer verification operation that speculatively verifies the correctness of a guessed PAC, and 2) a transmission operation that speculatively transmits the verification result via a micro-architectural side channel.” reads the paper. “The pointer verification operation is performed by an authentication instruction (new instructions in ARMv8.3), which outputs a valid pointer if the verification succeeds and an invalid pointer otherwise.”
The researchers shared their findings with Apple, the IT giant downplayed the risks related to the exposure to this side-channel attack for Mac users because the technique requires other security vulnerabilities to be effective.
“We believe that this attack has important implications for designers looking to implement future processors featuring Pointer Authentication, and has broad implications for the security of future controlflow integrity primitives.” the researchers concluded.
Security Affairs is one of the finalists for the best European Cybersecurity Blogger Awards 2022 – VOTE FOR YOUR WINNERS. I ask you to vote for me again (even if you have already done it), because this vote is for the final.
Please vote for Security Affairs and Pierluigi Paganini in every category that includes them (e.g. sections “The Underdogs – Best Personal (non-commercial) Security Blog” and “The Tech Whizz – Best Technical Blog”)
To nominate, please visit:
(SecurityAffairs – hacking, PACMAN)