Share your thoughts, 1 month free Claude Pro on usSee more
WorkDL logo mark

GWP-ASan: Sampling-Based Detection of Memory-Safety Bugs in Production

About

Despite the recent advances in pre-production bug detection, heap-use-after-free and heap-buffer-overflow bugs remain the primary problem for security, reliability, and developer productivity for applications written in C or C++, across all major software ecosystems. Memory-safe languages solve this problem when they are used, but the existing code bases consisting of billions of lines of C and C++ continue to grow, and we need additional bug detection mechanisms. This paper describes a family of tools that detect these two classes of memory-safety bugs, while running in production, at near-zero overhead. These tools combine page-granular guarded allocation and low-rate sampling. In other words, we added an "if" statement to a 36-year-old idea and made it work at scale. We describe the basic algorithm, several of its variants and implementations, and the results of multi-year deployments across mobile, desktop, and server applications.

Kostya Serebryany, Chris Kennelly, Mitch Phillips, Matt Denton, Marco Elver, Alexander Potapenko, Matt Morehouse, Vlad Tsyrklevich, Christian Holler, Julian Lettner, David Kilzer, Lander Brandt• 2023

Related benchmarks

TaskDatasetResultRank
Bug DetectionJuliet Test Suite CWE415 - double free
Detection Rate98.6
5
Bug DetectionJuliet Test Suite CWE122 - heap-based buffer overflow
Detection Rate23.15
5
Bug DetectionJuliet Test Suite CWE416 - use after free
Detection Rate (CWE416)0.00e+0
5
Showing 3 of 3 rows

Other info

Follow for update