Extraction and Mutation at a High Level: Template-Based Fuzzing for JavaScript Engines

  • Wai Kin WONG
  • , Dongwei XIAO
  • , Cheuk Tung LAI
  • , Yiteng PENG
  • , Daoyuan WU
  • , Shuai WANG*
  • *Corresponding author for this work

Research output: Journal PublicationsJournal Article (refereed)peer-review

Abstract

JavaScript (JS) engines implement complex language semantics and optimization strategies to support the dynamic nature of JS, making them difficult to test thoroughly and prone to subtle, security-critical bugs. Existing fuzzers often struggle to generate diverse and valid test cases. They either rely on syntax-level mutations that lack semantic awareness or perform limited, local mutations on concrete code, thus failing to explore deeper, more complex program behaviors. This paper presents TemuJs, a novel fuzzing framework that performs extraction and mutation at a high level, operating on abstract templates derived from real-world JS programs. These templates capture coarse-grained program structures with semantic placeholders, enabling semantics-aware mutations that preserve the high-level intent of the original code while diversifying its behavior. By decoupling mutation from concrete syntax and leveraging a structured intermediate representation for the templates, TemuJs explores a broader and more meaningful space of program behaviors. Evaluated on three major JS engines, namely, V8, SpiderMonkey, and JavaScriptCore, TemuJs discovers 44 bugs and achieves a 10.3% increase in edge coverage compared to state-of-the-art fuzzers on average. Our results demonstrate the efficacy of high-level, template-mutation fuzzing in testing JS engines.
Original languageEnglish
Article number376
Pages (from-to)2898-2926
Number of pages29
JournalProceedings of the ACM on Programming Languages
Volume9
Issue numberOOPSLA2
DOIs
Publication statusPublished - 9 Oct 2025

Bibliographical note

We also thank Prof. Zhendong Su at ETH Zurich for his valuable discussions with Dongwei Xiao regarding the ideas presented in this paper, which took place during Dongwei Xiao's visit. We additionally thank Samuel Groß and Carl Smith at Google for their valuable feedback during the initial stages of this work.

Publisher Copyright:
© 2025 Owner/Author.

Funding

The HKUST authors are supported in part by a RGC GRF grant under the contract 16214723.

Keywords

  • JavaScript engine
  • Just-in-time compilation
  • fuzzing
  • security

Fingerprint

Dive into the research topics of 'Extraction and Mutation at a High Level: Template-Based Fuzzing for JavaScript Engines'. Together they form a unique fingerprint.

Cite this