Compiler-Enforced Buffer Overflow Elimination

The Compiler-Enforced Buffer Overflow Elimination tool is a research prototype designed to prevent buffer overflows from succeeding in multithreaded code. Our reserachers combine static and dynamic analysis to find language constructs that can result in out-of-bounds accesses and modify the compiler to eliminate potential buffer overflows. This tool is a result of that research.

This memory safety compiler prevents buffer overflows from successfully executing and has the following features that go beyond those of other memory safety mechanisms:

  • Hoists bounds checks out of some loops for increased performance
  • Generates code that works in a multithreaded environment
  • Can either abort the program upon encountering an attempted buffer overflow, or print a message and continue executing to aid in debugging applications

The Compiler-Enforced Buffer Overflow Elimination tool addresses only spatial safety (wandering outside the address range of the intended object). It does not address temporal safety (such as dangling pointers).

Explore the download and recommended resources on the right. More about this tool and how to use it are included on the download page.

Contact us if you have questions or need more information.

Download

  • Instructions for running the tool are included on the download page.

Requirements

To run the tool, either of the following must be installed on the system that will perform the compilation:

  • LLVM 3.3 or earlier
  • GCC


Supported Environments

  • Linux x86-64