Back to Search Start Over

Finding Bugs in File Systems with an Extensible Fuzzing Framework

Authors :
Jungyeon Yoon
Sanidhya Kashyap
Wen Xu
Taesoo Kim
Meng Xu
Seulbae Kim
Source :
ACM Transactions on Storage. 16:1-35
Publication Year :
2020
Publisher :
Association for Computing Machinery (ACM), 2020.

Abstract

File systems are too large to be bug free. Although handwritten test suites have been widely used to stress file systems, they can hardly keep up with the rapid increase in file system size and complexity, leading to new bugs being introduced. These bugs come in various flavors: buffer overflows to complicated semantic bugs. Although bug-specific checkers exist, they generally lack a way to explore file system states thoroughly. More importantly, no turnkey solution exists that unifies the checking effort of various aspects of a file system under one umbrella. In this article, to highlight the potential of applying fuzzing to find any type of file system bugs in a generic way, we propose H ydra , an extensible fuzzing framework. H ydra provides building blocks for file system fuzzing, including input mutators, feedback engines, test executors, and bug post-processors. As a result, developers only need to focus on building the core logic for finding bugs of their interests. We showcase the effectiveness of H ydra with four checkers that hunt crash inconsistency, POSIX violations, logic assertion failures, and memory errors. So far, H ydra has discovered 157 new bugs in Linux file systems, including three in verified file systems (FSCQ and Yxv6).

Details

ISSN :
15533093 and 15533077
Volume :
16
Database :
OpenAIRE
Journal :
ACM Transactions on Storage
Accession number :
edsair.doi...........18871875507135b5eaec9eec5c9b6e01
Full Text :
https://doi.org/10.1145/3391202