Static Analysis Framework for Detecting Use-After-Free Bugs in C++
Vlad-Alexandru Teodorescu, Dorel Lucanu

TL;DR
This paper presents a static analysis framework for C++ that detects use-after-free bugs at compile-time by tracking object lifetimes, aiming to improve software security and reduce debugging costs.
Contribution
It introduces a novel static analysis approach that effectively detects use-after-free bugs in C++, tested on real-world projects with promising results.
Findings
Successfully detects multiple use-after-free patterns
Achieves good detection accuracy on real-world projects
Highlights scenarios with false positives
Abstract
Pointers are a powerful, but dangerous feature provided by the C and C++ programming languages, and incorrect use of pointers is a common source of bugs and security vulnerabilities. Making secure software is crucial, as vulnerabilities exploited by malicious actors not only lead to monetary losses, but possibly loss of human lives. Fixing these vulnerabilities is costly if they are found at the end of development, and the cost will be even higher if found after deployment. That is why it is desirable to find the bugs as early in the development process as possible. We propose a framework that can statically find use-after-free bugs at compile-time and report the errors to the users. It works by tracking the lifetime of objects and memory locations pointers might point to and, using this information, a possibly invalid dereferencing of a pointer can be detected. The framework was tested…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
