CryptSan: Leveraging ARM Pointer Authentication for Memory Safety in C/C++
Konrad Hohentanner, Philipp Zieris, Julian Horsch

TL;DR
CryptSan leverages ARM Pointer Authentication to retrofit memory safety in C/C++ programs, providing a hardware-assisted, efficient, and interoperable solution that protects against common vulnerabilities.
Contribution
It introduces CryptSan, a novel LLVM-based system utilizing ARM Pointer Authentication to enhance memory safety in C/C++, outperforming existing approaches.
Findings
Outperforms similar memory safety approaches in real-world tests.
Protects heap, stack, and globals against vulnerabilities.
Operates efficiently on actual ARM hardware.
Abstract
Memory safety bugs remain in the top ranks of security vulnerabilities, even after decades of research on their detection and prevention. Various mitigations have been proposed for C/C++, ranging from language dialects to instrumentation. Among these, compiler-based instrumentation is particularly promising, not requiring manual code modifications and being able to achieve precise memory safety. Unfortunately, existing compiler-based solutions compromise in many areas, including performance but also usability and memory safety guarantees. New developments in hardware can help improve performance and security of compiler-based memory safety. ARM Pointer Authentication, added in the ARMv8.3 architecture, is intended to enable hardware-assisted Control Flow Integrity (CFI). But since its operations are generic, it also enables other, more comprehensive hardware-supported runtime integrity…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Advanced Malware Detection Techniques · Parallel Computing and Optimization Techniques
