Towards Vulnerability Discovery Using Staged Program Analysis
Bhargava Shastry, Fabian Yamaguchi, Konrad Rieck, and Jean-Pierre, Seifert

TL;DR
This paper introduces Melange, a static analysis framework that effectively detects security vulnerabilities in large C and C++ codebases by combining local and global analyses to assist developers in fixing bugs early.
Contribution
The paper presents Melange, a practical vulnerability assessment tool that performs staged program analysis, including demand-driven global analysis, to identify multiple vulnerability types in real-world software.
Findings
Melange scales to large codebases like Chromium.
It detects multiple vulnerability classes such as type confusion.
Static analysis complements testing tools effectively.
Abstract
Eliminating vulnerabilities from low-level code is vital for securing software. Static analysis is a promising approach for discovering vulnerabilities since it can provide developers early feedback on the code they write. But, it presents multiple challenges not the least of which is understanding what makes a bug exploitable and conveying this information to the developer. In this paper, we present the design and implementation of a practical vulnerability assessment framework, called Melange. Melange performs data and control flow analysis to diagnose potential security bugs, and outputs well-formatted bug reports that help developers understand and fix security bugs. Based on the intuition that real-world vulnerabilities manifest themselves across multiple parts of a program, Melange performs both local and global analyses. To scale up to large programs, global analysis is…
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.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Security and Verification in Computing · Software Reliability and Analysis Research
