TL;DR
MESH is a memory-efficient safe heap for C/C++ that offers constant, low overhead spatial and temporal safety, making it suitable for memory-constrained environments without sacrificing security or compatibility.
Contribution
MESH introduces a highly memory-efficient safe heap with constant overhead and compatibility, addressing limitations of existing solutions like ASan and Softbound/CETS.
Findings
MESH achieves significant memory savings compared to ASan and Softbound/CETS.
MESH maintains similar execution performance to existing solutions.
MESH is fully compatible with uninstrumented code and libraries.
Abstract
While memory corruption bugs stemming from the use of unsafe programming languages are an old and well-researched problem, the resulting vulnerabilities still dominate real-world exploitation today. Various mitigations have been proposed to alleviate the problem, mainly in the form of language dialects, static program analysis, and code or binary instrumentation. Solutions like AdressSanitizer (ASan) and Softbound/CETS have proven that the latter approach is very promising, being able to achieve memory safety without requiring manual source code adaptions, albeit suffering substantial performance and memory overheads. While performance overhead can be seen as a flexible constraint, extensive memory overheads can be prohibitive for the use of such solutions in memory-constrained environments. To address this problem, we propose MESH, a highly memory-efficient safe heap for C/C++. With…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
