返回
Fuzzing JavaScript JIT Compilers With Optimization Path Feedback
DOI:10.1109/tdsc.2026.3691462.png)
摘要
En 中文
即时编译器(JIT)是JavaScript引擎的核心组件,它以JavaScript代码作为输入,并对其应用一系列优化步骤,将其转换为机器代码。这些优化步骤通常对输入程序做出一些假设(例如变量类型),因此当这些假设被违反时会产生漏洞。为了发现此类错误,必须彻底测试不同的优化步骤,但以往的研究未能做到这一点,主要关注于代码覆盖率。在本文中,我们提出了首个针对JavaScript JIT编译器的优化路径引导模糊测试解决方案,即OptFuzz,它专注于探索优化路径。具体来说,我们利用一个“优化子路径”指标来近似优化路径,并将其作为反馈来指导种子保留和种子调度。此外,我们通过分析即时编译中间表示(IR)级别的代码转换来识别优化触发,并且仅在触发优化时保留优化子路径。我们在四个基准模糊测试器上实现了OptFuzz,并在四个主流JavaScript引擎上进行了评估。在早期引擎版本中,OptFuzz发现的错误数量是基准测试的数倍。在最新引擎中,OptFuzz发现了52个新错误,其中43个已被确认或修复。
Keyword:
Fuzzing
JIT compiler
JavaScript engine
optimization
期刊
IF:
7.5
论文数:
2.6K
被引数:
9.6K

