Litcius/Paper detail

Favocado: Fuzzing the Binding Code of JavaScript Engines Using Semantically Correct Test Cases

Sung Ta Dinh, Haehyun Cho, Kyle Martin, Adam Oest, Kyle Zeng, Alexandros Kapravelos, Gail‐Joon Ahn, Tiffany Bao, Ruoyu Wang, Adam Doupé, Yan Shoshitaishvili

202140 citationsDOIOpen Access PDF

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.

Topics & Concepts

Fuzz testingJavaScriptComputer scienceProgramming languageSoftware testingCode (set theory)Test (biology)DatabaseSoftwareGeologySet (abstract data type)PaleontologySoftware Testing and Debugging TechniquesAdvanced Malware Detection TechniquesWeb Application Security Vulnerabilities