WEIZZ: automatic grey-box fuzzing for structured binary formats
Andrea Fioraldi, Daniele Cono D'Elia, Emilio Coppa
Abstract
Fuzzing technologies have evolved at a fast pace in recent years, revealing bugs in programs with ever increasing depth and speed. Applications working with complex formats are however more difficult to take on, as inputs need to meet certain format-specific characteristics to get through the initial parsing stage and reach deeper behaviors of the program. Unlike prior proposals based on manually written format specifications, we propose a technique to automatically generate and mutate inputs for unknown chunk-based binary formats. We identify dependencies between input bytes and comparison instructions, and use them to assign tags that characterize the processing logic of the program. Tags become the building block for structure-aware mutations involving chunks and fields of the input. Our technique can perform comparably to structure-aware fuzzing proposals that require human assistance. Our prototype implementation Weizz revealed 16 unknown bugs in widely used programs. CCS CONCEPTS • Software and its engineering → Software testing and debugging; Software verification and validation; • Security and privacy → Software and application security.
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 7cf802a3-72fa-4330-a097-1fa86b7c976cCited by top-tier papers37
- Nyx-net: network fuzzing with incremental snapshotsSergej Schumilo, Cornelius Aschermann, Andrea Jemmett, Ali Abbasi et al.EuroSys 2022 · 76 citations
- LibAFL: A Framework to Build Modular and Reusable FuzzersAndrea Fioraldi, Dominik Christian Maier, Dongjia Zhang, Davide BalzarottiCCS 2022 · 71 citations
- The Use of Likely Invariants as Feedback for FuzzersAndrea Fioraldi, Daniele Cono D'Elia, Davide BalzarottiUSENIX Security 2021 · 67 citations
- RULF: Rust Library Fuzzing via API Dependency Graph TraversalJianfeng Jiang, Hui Xu, Yangfan ZhouASE 2021 · 44 citations
- Evaluating and Improving Hybrid FuzzingLing Jiang, Hengchen Yuan, Mingyuan Wu, Lingming Zhang et al.ICSE 2023 · 29 citations
Builds on7
- Driller: Augmenting Fuzzing Through Selective Symbolic ExecutionNick Stephens, John Grosen, Christopher Salls, Andrew Dutcher et al.NDSS 2016 · 1,021 citations
- Angora: Efficient Fuzzing by Principled SearchPeng Chen, Hao ChenS&P 2018 · 616 citations
- QSYM : A Practical Concolic Execution Engine Tailored for Hybrid FuzzingInsu Yun, Sangho Lee, Meng Xu, Yeongjin Jang et al.USENIX Security 2018 · 537 citations
- REDQUEEN: Fuzzing with Input-to-State CorrespondenceCornelius Aschermann, Sergej Schumilo, Tim Blazytko, Robert Gawlik et al.NDSS 2019 · 413 citations
- T-Fuzz: Fuzzing by Program TransformationHui Peng, Yan Shoshitaishvili, Mathias PayerS&P 2018 · 326 citations
Related papers
- Fuzztruction: Using Fault Injection-based Fuzzing to Leverage Implicit Domain KnowledgeNils Bars, Moritz Schloegel, Tobias Scharnowski, Nico Schiller et al.USENIX Security 2023
- NestFuzz: Enhancing Fuzzing with Comprehensive Understanding of Input Processing LogicPeng Deng, Zhemin Yang, Lei Zhang, Guangliang Yang et al.CCS 2023 · 5 citations
- FrameShift: Resizing Fuzzer Inputs Without Breaking ThemHarrison Green, Claire Le Goues, Fraser BrownICSE 2026
- AIFORE: Smart Fuzzing Based on Automatic Input Format Reverse EngineeringJi Shi, Zhun Wang, Zhiyao Feng, Yang Lan et al.USENIX Security 2023
- DSFuzz: Detecting Deep State Bugs with Dependent State ExplorationYinxi Liu, Wei MengCCS 2023 · 4 citations
