Skip to main navigation Skip to search Skip to main content

TAILCHECK: A Lightweight Heap Overflow Detection Mechanism with Page Protection and Tagged Pointers

  • Stony Brook University

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

9 Scopus citations

Abstract

A heap overflow vulnerability occurs when a program written in an unmanaged language such as C or C++ accesses a memory location beyond an object allocation boundary. Malicious users may exploit this vulnerability to corrupt an adjacent object in memory, creating an entry point for a security attack. Despite decades of research, unfortunately, it still remains challenging to detect heap overflow vulnerabilities in real-world programs at a low cost. We present TAILCHECK, a new lightweight heap overflow detection scheme that leverages page protection and pointer tagging. When an object is created, TAILCHECK allocates an additional page-protected shadow object, called a TailObject, placing the distance from the object to its TailObject as a tag stored in the unused high-order bits of the object pointer. For every access to the original object, TAILCHECK performs an additional memory access to the TailObject, whose address is computed using the tag. Heap overflows are detected as page faults when an access occurs beyond the TailObject. We evaluated TAILCHECK with four server applications (apache, nginx, memcached, redis) and the SPEC CPU2017 and SPEC CPU2006 benchmarks, successfully finding heap overflows in SPEC CPU2017 gcc. TAILCHECK experiences 4% and 3% run-time overhead for the average and tail (99%) latencies for server applications; and only 33% and 29% runtime overhead for SPEC CPU2017 and SPEC CPU2006, respectively, less than the state-of-the-art solution.

Original languageEnglish
Title of host publicationProceedings of the 17th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2023
PublisherUSENIX Association
Pages535-552
Number of pages18
ISBN (Electronic)9781939133342
StatePublished - 2023
Event17th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2023 Co-located with USENIX ATC 2023 - Boston, United States
Duration: Jul 10 2023Jul 12 2023

Publication series

NameProceedings of the 17th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2023

Conference

Conference17th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2023 Co-located with USENIX ATC 2023
Country/TerritoryUnited States
CityBoston
Period07/10/2307/12/23

Fingerprint

Dive into the research topics of 'TAILCHECK: A Lightweight Heap Overflow Detection Mechanism with Page Protection and Tagged Pointers'. Together they form a unique fingerprint.

Cite this