arrow
返回

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

delete2025-10-01
delete0
PRE
AI
W
Wai Kin Wong
D
Dongwei Xiao
C
Cheuk Tung Lai
Y
Yiteng Peng
D
Daoyuan Wu
S
Shuai Wang *
DOI:10.1145/3763154delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
JavaScript (JS) 引擎通过实现复杂的语言语义和优化策略来支持 JS 的动态特性,这使得它们难以进行彻底测试,并且容易产生细微但影响安全的关键性错误。现有的模糊测试工具(fuzzers)往往难以生成多样且有效的测试用例。它们要么依赖缺乏语义感知的语法级变异,要么对具体代码执行有限且局部的变异,从而无法探索更深、更复杂的程序行为。本文提出了一种新型模糊测试框架 TEMUJS,它在高层次上执行提取和变异操作,基于从真实 JS 程序中派生的抽象模板进行工作。这些模板通过语义占位符捕获粗粒度的程序结构,能够实现语义感知的变异,在保持原始代码高层意图的同时丰富其行为表现。通过将变异与具体语法解耦,并利用结构化的中间表示形式处理模板,TEMUJS 探索了更广泛且更有意义的程序行为空间。在三大主要 JS 引擎 V8、SpiderMonkey 和 JavaScriptCore 上的评估显示,TEMUJS 发现了 44 个错误,相较于现有最先进的模糊测试工具,平均提升了 10.3% 的边覆盖率。我们的结果表明,高层模板变异模糊测试在 JS 引擎测试中是有效的。
Keyword:
JavaScript engine
fuzzing
security
Just-in-time compilation

期刊

P
Proceedings of the ACM on Programming Languages-PACMPL
IF:
2.8
论文数:
308
被引数:
4.7K

机构

L
Lingnan University
学者数:
1.0K
论文数: 1.4K
被引数: 202
引用论文

引用论文

Compiler validation via equivalence modulo inputs
err2014-06-09
err0
PREAI
errVu Le; Mehrdad Afshari; Zhendong Su
err分享
err收藏
err
IF0
err
err0
PREAI
err
err分享
err收藏
err
IF0
err
err0
PREAI
err
err分享
err收藏
JIT-Picking
err2022-11-07
err0
errOAAI
errLukas Bernhard; Tobias Scharnowski; Moritz Schloegel; Tim Blazytko; Thorsten Holz
err分享
err收藏
Seed selection for successful fuzzing
err2021-07-11
err0
errOAAI
errAdrian Herrera; Hendra Gunadi; Shane Magrath; Michael Norrish; Mathias Payer; Antony L. Hosking
err分享
err收藏
err分享
err收藏
Fuzzing Deep Learning Compilers with HirGen
err2023-07-13
err0
errOAAI
errHaoyang Ma; Qingchao Shen; Yongqiang Tian; Junjie Chen; Shing-Chi Cheung
err分享
err收藏
学者 查看更多内容