Memory Tagging and how it improves C/C++ memory safety
summary
Memory tagging attaches small tags to pointers and memory and catches mismatches to find bugs with low overhead: hardware SPARC ADI uses 4-bit tags per 64 bytes and works but wastes up to ~20% RAM; a software/hardware hybrid HWASAN on AArch64 uses 8-bit tags per 16 bytes, ~6% RAM but incurs ≈2x CPU from compiler instrumentation; ARM’s Memory Tagging Extension (ARM MTE) is 4-bit tags per 16 bytes announced but not yet shipped. Detection is probabilistic (≈93% for 4-bit), zero false positives, and strong against linear overflows and delayed use-after-free.
AI-written summary · about
chapters (8)
- 0:00Memory safety in C++
- 5:38Address sanitizer limitations
- 9:30Memory tagging concept
- 14:30Hardware and software tools
- 17:35Existing implementations
- 20:33ARM memory tagging extension
- 22:37Future of memory safety
- 26:22Q&A and conclusion
related talks
37mARM MTE: The End Of Memory Corruption? Not Yet
23mFlexible Tag-based Policies for Compartmentalized C
17mFat Pointers for Temporal Memory Safety of C
26mMemory Safety Preservation for WebAssembly
15mMemoryTrap: Booby Trapping Memory to Counter Memory Disclosure Attacks with...
01h 06mSecurity Beyond Memory Safety - Using Modern C++ to Avoid Vulnerabilities by Design
34mMaking C Less Dangerous
44mDebugging memory corruptions in C++
