ESFuzzer: An Efficient Way to Fuzz WebAssembly Interpreter

Jideng Han,Zhaoxin Zhang,Yuejin Du,Wei Wang,Xiuyuan Chen
DOI: https://doi.org/10.3390/electronics13081498
IF: 2.9
2024-04-15
Electronics
Abstract:WebAssembly code is designed to run in a sandboxed environment, such as a web browser, providing a high level of security and isolation from the underlying operating system and hardware. This enables the execution of untrusted code in a web browser without compromising the security and integrity of the user's system. This paper discusses the challenges associated with using fuzzing tools to identify vulnerabilities or bugs in WebAssembly interpreters. Our approach, known as ESFuzzer, introduces an efficient method for fuzzing WebAssembly interpreters using an Equivalent-Statement concept and the Stack Repair Algorithm. The samples generated by our approach successfully passed code validation. In addition, we developed effective mutation strategies to enhance the efficacy of our approach. ESFuzzer has demonstrated its ability to generate code that achieves 100% WebAssembly validation testing and achieves code coverage that is more than twice that of libFuzzer. Furthermore, the 24-h experiment results show that ESFuzzer performs ten times more efficiently than libFuzzer.
engineering, electrical & electronic,computer science, information systems,physics, applied
What problem does this paper attempt to address?