2016 · 107 citations · 12 references
ComputingComputer EngineeringComputer ScienceCompilersHardware SecurityProgramming LanguagesMemory HierarchyMemory ManagementMemory Protection HardwareMicroarchitectural SecurityBounds CheckingBuffer Overflow AnalysisBuffer OverflowsHeap AnalysisHeap Overflow ProtectionHeap OverflowsHeap-based Buffer OverflowsMemory Overhead
Heap buffer overflow (underflow) errors are a common source of security vulnerabilities. One prevention mechanism is to add object bounds meta information and to instrument the program with explicit bounds checks for all memory access. The so-called "fat pointers" approach is one method for maintaining and propagating the meta information where native machine pointers are replaced with "fat" objects that explicitly store object bounds. Another approach is "low fat pointers", which encodes meta information within a native pointer itself, eliminating space overheads and also code compatibility issues. This paper presents a new low-fat pointer encoding that is fully compatible with existing libraries (e.g. pre-compiled libraries unaware of the encoding) and standard hardware (e.g. x86_64). We show that our approach has very low memory overhead, and competitive with existing state-of-the-art bounds instrumentation solutions.
12
László Szekeres, Mathias Payer, Tao Wei et al. · 2013 · 658 citations · Full text
AddressSanitizer: a fast address sanity checker
Konstantin Serebryany, Derek Bruening, Alexander Potapenko et al. · USENIX Annual Technical Conference · 2012 · 642 citations
Trevor Jim, J. Greg Morrisett, Dan Grossman et al. · 2002 · 618 citations
Santosh Nagarakatte, Milo M. K. Martin, Steve Zdancewic · 2009 · 529 citations