PACStack: an Authenticated Call Stack

Hans Liljestrand, Thomas Nyman, Lachlan J Gunn, Jan-Erik Ekberg, N. Asokan

Research output: Chapter in Book/Report/Conference proceedingConference contributionScientificpeer-review


A popular run-time attack technique is to compromise the control-flow integrity of a program by modifying function return addresses on the stack. So far, shadow stacks have proven to be essential for comprehensively preventing return address manipulation. Shadow stacks record return addresses in integrity-protected memory secured with hardware-assistance or software access control. Software shadow stacks incur high overheads or trade off security for efficiency. Hardware-assisted shadow stacks are efficient and secure, but require the deployment of special-purpose hardware.
We present authenticated call stack (ACS), an approach that uses chained message authentication codes (MACs). Our prototype, PACStack, uses the ARM general purpose hardware mechanism for pointer authentication (PA) to implement ACS. Via a rigorous security analysis, we show that PACStack achieves security comparable to hardware-assisted shadow stacks without requiring dedicated hardware. We demonstrate that PACStack's performance overhead is small (~3%).
Original languageEnglish
Title of host publicationProceedings of the 30th USENIX Security Symposium
Number of pages18
ISBN (Electronic)978-1-939133-24-3
Publication statusPublished - Aug 2020
MoE publication typeA4 Article in a conference publication
EventUSENIX Security Symposium - Virtual, Online
Duration: 11 Aug 202113 Aug 2021
Conference number: 30


ConferenceUSENIX Security Symposium
Abbreviated titleUSENIX
CityVirtual, Online


Dive into the research topics of 'PACStack: an Authenticated Call Stack'. Together they form a unique fingerprint.

Cite this