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 language | English |
|---|---|
| Article number | 376 |
| Pages (from-to) | 2898-2926 |
| Number of pages | 29 |
| Journal | Proceedings of the ACM on Programming Languages |
| Volume | 9 |
| Issue number | OOPSLA2 |
| DOIs | |
| Publication status | Published - 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
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver