Buffer overflow attacks may be today's single most important security threat. This paper presents a new approach to mitigating buffer overflow vulnerabilities by detecting likely vulnerabilities through an analysis of the program source code. Our approach exploits information provided in semantic comments and uses lightweight and efficient static analyses. This paper describes an implementation of our approach that extends the LCLint annotation-assisted static checking tool. Our tool is as fast as a compiler and nearly as easy to use. We present experience using our approach to detect buffer overflow vulnerabilities in two security-sensitive programs.
Complete Paper (13 pages)
Note: After this paper was published, LCLint was renamed Splint. The extensions described in this paper are available in the current release of Splint.
This paper was reprinted in Hacker's Digest, Fall 2001 [PDF], right after the article Ten Things Not to Do If Arrested (e.g., #2. Don't run.).
Splint Project Page