Title
Favocado: Fuzzing The Binding Code Of Javascript Engines Using Semantically Correct Test Cases
Abstract
JavaScript runtime systems include some specialized programming interfaces, called binding layers. Binding layers translate data representations between JavaScript and unsafe low-level languages, such as C and C++, by converting data between different types. Due to the wide adoption of JavaScript (and JavaScript engines) in the entire computing ecosystem, discovering bugs in JavaScript binding layers is critical. Nonetheless, existing JavaScript fuzzers cannot adequately fuzz binding layers due to two major challenges: Generating syntactically and semantically correct test cases and reducing the size of the input space for fuzzing.In this paper, we propose Favocado, a novel fuzzing approach that focuses on fuzzing binding layers of JavaScript runtime systems. Favocado can generate syntactically and semantically correct JavaScript test cases through the use of extracted semantic information and careful maintaining of execution states. This way, test cases that Favocado generates do not raise unintended runtime exceptions, which substantially increases the chance of triggering binding code. Additionally, exploiting a unique feature (relative isolation) of binding layers, Favocado significantly reduces the size of the fuzzing input space by splitting DOM objects into equivalence classes and focusing fuzzing within each equivalence class. We demonstrate the effectiveness of Favocado in our experiments and show that Favocado outperforms a stateof-the-art DOM fuzzer. Finally, during the evaluation, we find 61 previously unknown bugs in four JavaScript runtime systems (Adobe Acrobat Reader, Foxit PDF Reader, Chromium, and WebKit). 33 of these bugs are security vulnerabilities.
Year
DOI
Venue
2021
10.14722/ndss.2021.24224
28TH ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2021)
DocType
Citations 
PageRank 
Conference
1
0.35
References 
Authors
0
11
Name
Order
Citations
PageRank
Sung Ta Dinh110.35
haehyun cho2166.55
Kyle Martin310.35
Adam Oest462.82
Kyle Zeng511.02
Alexandros Kapravelos632420.58
Gail-Joon Ahn73012203.39
Tiffany Bao8648.17
Ruoyu Wang931.07
Adam Doupé1035733.14
Yan Shoshitaishvili1135826.98