USENIX Security2024Top-tier venue
A Binary-level Thread Sanitizer or Why Sanitizing on the Binary Level is Hard
Joschua Schilling, Andreas Wendler, Philipp Görz, Nils Bars, Moritz Schloegel, Thorsten Holz
Abstract
Dynamic software testing methods, such as fuzzing, have become a popular and effective method for detecting many types of faults in programs. While most research focuses on targets for which source code is available, much of the software used in practice is only available as closed source. Testing software without having access to source code forces a user to resort to binary-only testing methods, which are typically slower and lack support for crucial features, such as advanced bug oracles in the form of sanitizers, i. e., dynamic methods to detect faults based on undefined or suspicious behavior. Almost all existing sanitizers work by injecting instrumentation at compile time, requiring access to the target's source code. In this paper, we systematically identify the key challenges of applying sanitizers to binary-only targets. As a result of our analysis, we present the design and implementation of BINTSAN, an approach to realize the data race detector TSAN targeting binary-only Linux x86-64 targets. We systematically evaluate BINTSAN for correctness, effectiveness, and performance. We find that our approach has a runtime overhead of only 15% compared to source-based TSAN. Compared to existing binary solutions, our approach has better performance (up to 5.0× performance improvement) and precision, while preserving compatibility with the compilerbased TSAN.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 46edffa1-c230-401d-9165-821fd46c8a04Cited by top-tier papers2
- Anota: Identifying Business Logic Vulnerabilities via Annotation-Based SanitizationMeng Wang, Philipp Görz, Joschua Schilling, Keno Hassler et al.NDSS 2026 · 4 citations
- CombiSan: Unifying Software Sanitizers for Comprehensive FuzzingMatteo Marini, Floris Gorter, Daniele Cono D'Elia, Cristiano GiuffridaUSENIX Security 2026
Builds on12
- SoK: Sanitizing for SecurityDokyung Song, Julian Lettner, Prabhu Rajasekaran, Yeoul Na et al.S&P 2019 · 196 citations
- RetroWrite: Statically Instrumenting COTS Binaries for Fuzzing and SanitizationSushant Dinesh, Nathan Burow, Dongyan Xu, Mathias PayerS&P 2020 · 187 citations
- Ramblr: Making Reassembly Great AgainRuoyu Wang, Yan Shoshitaishvili, Antonio Bianchi, Aravind Machiry et al.NDSS 2017 · 155 citations
- Superset Disassembly: Statically Rewriting x86 Binaries Without HeuristicsErick Bauman, Zhiqiang Lin, Kevin W. HamlenNDSS 2018 · 112 citations
- DOLMA: Securing Speculation with the Principle of Transient Non-ObservabilityKevin Loughlin, Ian Neal, Jiacheng Ma, Elisa Tsai et al.USENIX Security 2021 · 94 citations
Related papers
- BoKASAN: Binary-only Kernel Address Sanitizer for Effective Kernel FuzzingMingi Cho, Dohyeon An, Hoyong Jin, Taekyoung KwonUSENIX Security 2023
- BSan: A Powerful Identifier-Based Hardware-Independent Memory Error Detector for COTS BinariesWen Zhang, Botang Xiao, Qingchen Kong, Le Guan et al.ICSE 2025
- Binvariants: Enhancing Fuzzing of Closed-Source Binary Executables via Register-Level Likely InvariantsZao Yang, Stefan NagyFSE 2026
- MTSan: A Feasible and Practical Memory Sanitizer for Fuzzing COTS BinariesXingman Chen, Yinghao Shi, Zheyu Jiang, Yuan Li et al.USENIX Security 2023
- OS-Sanitizer: System-wide Latent Defect Inference in Linux ApplicationsAddison Crump, Sahil Sihag, Florian Bauckholt, Keno Hassler et al.USENIX Security 2026
