Back to Search Start Over

Finding semantic bugs in file systems with an extensible fuzzing framework

Authors :
Jungyeon Yoon
Wen Xu
Meng Xu
Seulbae Kim
Taesoo Kim
Sanidhya Kashyap
Source :
SOSP
Publication Year :
2019
Publisher :
ACM, 2019.

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 and reported regularly. These bugs come in various flavors: simple buffer overflows to sophisticated 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 paper, we highlight the potential of applying fuzzing to find not just memory errors but, in theory, any type of file system bugs with an extensible fuzzing framework: Hydra. Hydra provides building blocks for file system fuzzing, including input mutators, feedback engines, a libOS-based executor, and a bug reproducer with test case minimization. As a result, developers only need to focus on building the core logic for finding bugs of their own interests. We showcase the effectiveness of Hydra with four checkers that hunt crash inconsistency, POSIX violations, logic assertion failures, and memory errors. So far, Hydra has discovered 91 new bugs in Linux file systems, including one in a verified file system (FSCQ), as well as four POSIX violations.

Details

Database :
OpenAIRE
Journal :
Proceedings of the 27th ACM Symposium on Operating Systems Principles
Accession number :
edsair.doi...........9f75b67d180265d87f6b8eec6f7d7898
Full Text :
https://doi.org/10.1145/3341301.3359662