NanoTag: Systems Support for Efficient Byte-Granular Overflow Detection on Arm
NanoTag introduces a novel technique for detecting byte-granular buffer overflows on ARM hardware. This method addresses the limitations of ARM's Memory Tagging Extension (MTE), which has a 16-byte granularity that leaves many memory accesses unprotected. By implementing software checks, NanoTag balances bug detection capabilities with performance overhead.
- ▪NanoTag is the first low-overhead technique for byte-granular buffer overflow detection in real hardware.
- ▪ARM's MTE aims to prevent buffer overflows but has limitations due to its 16-byte tag granularity.
- ▪NanoTag enables byte-granular overflow detection through software checks controlled by a sampling knob.
Opening excerpt (first ~120 words) tap to expand
NanoTag: Systems Support for Efficient Byte-Granular Overflow Detection on ARM MTE NanoTag is the first low-overhead technique to detect byte-granular buffer overflows in real hardware. Buffer overflows are the root cause of most software vulnerabilities. ARM's Memory Tagging Extension (MTE) aims to prevent such buffer overflows in hardware by ensuring that a pointer's tag matches the tag of any 16-byte memory the pointer accesses, sanitizing memory accesses. Unfortunately, such a 16-byte tag granularity prevents MTE from sanitizing many memory accesses, exposing a large surface (87% for SPEC CPU 2017) of bypassing MTE checks.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at GitHub.