Vital: Vulnerability-Oriented Symbolic Execution via Type-Unsafe Pointer-Guided Monte Carlo Tree Search
Haoxin Tu, Lingxiao Jiang, and Marcel B\"ohme

TL;DR
Vital introduces a vulnerability-oriented symbolic execution method that leverages type-unsafe pointers and Monte Carlo Tree Search to efficiently detect memory safety bugs, outperforming existing strategies in coverage, speed, and vulnerability discovery.
Contribution
The paper presents a novel approach combining type-unsafe pointer analysis with Monte Carlo Tree Search to improve vulnerability detection in symbolic execution.
Findings
Covering up to 90.03% more unsafe pointers
Detecting up to 57.14% more memory errors
Achieving up to 30x speedup and 20x memory reduction
Abstract
How to find memory safety bugs efficiently when navigating a symbolic execution tree that suffers from path explosion? Existing solutions either adopt path search heuristics to maximize coverage rate or chopped symbolic execution to skip uninteresting code (i.e., manually labeled as vulnerability-unrelated) during path exploration. However, most existing search heuristics are not vulnerability-oriented, and manual labeling of irrelevant code-to-be-skipped relies heavily on prior expert knowledge, making it hard to detect vulnerabilities effectively in practice. This paper proposes Vital, a new vulnerability-oriented path exploration for symbolic execution with two innovations. First, a new indicator (i.e., type-unsafe pointers) is suggested to approximate vulnerable paths. A pointer that is type-unsafe cannot be statically proven to be safely dereferenced without memory corruption.…
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
TopicsAdvanced Malware Detection Techniques · Software Reliability and Analysis Research · Software Testing and Debugging Techniques
