Memory Tagging and how it improves C/C++ memory safety
arXiv:1802.09517
Abstract
Memory safety in C and C++ remains largely unresolved. A technique usually called "memory tagging" may dramatically improve the situation if implemented in hardware with reasonable overhead. This paper describes two existing implementations of memory tagging: one is the full hardware implementation in SPARC; the other is a partially hardware-assisted compiler-based tool for AArch64. We describe the basic idea, evaluate the two implementations, and explain how they improve memory safety. This paper is intended to initiate a wider discussion of memory tagging and to motivate the CPU and OS vendors to add support for it in the near future.
Cited by in corpus (8)
- PAC it up: Towards Pointer Integrity using ARM Pointer Authentication
- CrypTag: Thwarting Physical and Logical Memory Vulnerabilities using Cryptographically Colored Memory
- PTAuth: Temporal Memory Safety via Robust Points-to Authentication
- Capacity: Cryptographically-Enforced In-Process Capabilities for Modern ARM Architectures (Extended Version)
- ROLoad-PMP: Securing Sensitive Operations for Kernels and Bare-Metal Firmware
- Practical Byte-Granular Memory Blacklisting using Califorms
- S3Library: Automatically Eliminating C/C++ Buffer Overflow using Compatible Safer Libraries
- DangKiller: Eliminating Dangling Pointers Efficiently via Implicit Identifier