Multi-level Fuzzing for Document File Formats with Intermediate Representations
This paper focuses on fuzzing document software or precisely, software that processes document files (e.g., HTML, PDF, and DOCX). Document software typically requires highly-structured inputs, which general-purpose fuzzing cannot handle well. We propose two techniques to facilitate fuzzing on document software. First, we design an intermediate document representation (DIR) for document files. DIR describes a document file in an abstract way that is independent of the underlying format. Reusing common SDKs, a DIR document can be lowered into a desired format without a deep understanding of the format. Second, we propose multi-level mutations to operate directly on a DIR document, which can more thoroughly explore the searching space than existing single-level mutations. Combining these two techniques, we can reuse the same DIR-based generations and mutations to fuzz any document format, without separately handling the target format and re-engineering the generation/mutation components.To assess utility of our DIR-based fuzzing, we applied it to 6 PDF and 6 HTML applications (48-hour) demonstrated superior performance, outpacing general mutation-based fuzzing (AFL++), ML-based PDF fuzzing (Learn&Fuzz), and structure-aware mutation-based fuzzing ((NAUTILUS) by 33.87%, 127.74%, and 25.17% in code coverage, respectively. For HTML, it exceeded AFL++ and generation-based methods (FreeDom and Domato) by 28.8% and 14.02%.
Authors
- Yifan Wang (ORCID: https://orcid.org/0000-0003-4352-8190)
- Jun Xu (ORCID: https://orcid.org/0009-0002-8128-5062)
Institutions
- Stevens Institute of Technology (US)
- University of Utah (US)
- Laboratoire d'Informatique de Paris-Nord (FR)
Publication Details
- Published
- 2024-10-28
- DOI
- https://doi.org/10.1109/issre62328.2024.00037
- Primary Topic
- Video Analysis and Summarization
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- National Science Foundation