DUMPLING: Fine-grained Differential JavaScript Engine Fuzzing

Web browsers are ubiquitous and execute untrusted JavaScript (JS) code.JS engines optimize frequently executed code through just-in-time (JIT) compilation.Subtly conflicting assumptions between optimizations frequently result in JS engine vulnerabilities.Attackers can take advantage of such diverging assumptions and use the flexibility of JS to craft exploits that produce a miscalculation, remove bounds checks in JIT compiled code, and ultimately gain arbitrary code execution.Classical fuzzing approaches for JS engines only detect bugs if the engine crashes or a runtime assertion fails.Differential fuzzing can compare interpreted code against optimized JIT compiled code to detect differences in execution.Recent approaches probe the execution states of JS programs through ad-hoc JS functions that read the value of variables at runtime.However, these approaches have limited capabilities to detect diverging executions and inhibit optimizations during JIT compilation, thus leaving JS engines under-tested.We propose DUMPLING, a differential fuzzer that compares the full state of optimized and unoptimized execution for arbitrary JS programs.Instead of instrumenting the JS input, DUMPLING instruments the JS engine itself, enabling deep and precise introspection.These extracted fine-grained execution states, coined as (frame) dumps, are extracted at a high frequency even in the middle of JIT compiled functions.DUMPLING finds eight new bugs in the thoroughly tested V8 engine, where previous differential fuzzing approaches struggled to discover new bugs.We receive $11,000 from Google's Vulnerability Rewards Program for reporting the vulnerabilities found by DUMPLING.

Authors

Publication Details

Published
2025-01-01
DOI
https://doi.org/10.14722/ndss.2025.241411
Citations
3
Primary Topic
Software Testing and Debugging Techniques
Type
article
Field-Weighted Citation Impact
6.92

Funders

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

DUMPLING: Fine-grained Differential JavaScript Engine Fuzzing

Flavio Toffalini, Christian Wressnegger, Mathias Payer, Liam Wachter et al.
3 citations
Software Testing and Debugging Techniques
6.92
article

DUMPLING: Fine-grained Differential JavaScript Engine Fuzzing

Flavio Toffalini, Christian Wressnegger, Mathias Payer, Liam Wachter, Julian Gremminger
article en
3 citations

Abstract

Web browsers are ubiquitous and execute untrusted JavaScript (JS) code.JS engines optimize frequently executed code through just-in-time (JIT) compilation.Subtly conflicting assumptions between optimizations frequently result in JS engine vulnerabilities.Attackers can take advantage of such diverging assumptions and use the flexibility of JS to craft exploits that produce a miscalculation, remove bounds checks in JIT compiled code, and ultimately gain arbitrary code execution.Classical fuzzing approaches for JS engines only detect bugs if the engine crashes or a runtime assertion fails.Differential fuzzing can compare interpreted code against optimized JIT compiled code to detect differences in execution.Recent approaches probe the execution states of JS programs through ad-hoc JS functions that read the value of variables at runtime.However, these approaches have limited capabilities to detect diverging executions and inhibit optimizations during JIT compilation, thus leaving JS engines under-tested.We propose DUMPLING, a differential fuzzer that compares the full state of optimized and unoptimized execution for arbitrary JS programs.Instead of instrumenting the JS input, DUMPLING instruments the JS engine itself, enabling deep and precise introspection.These extracted fine-grained execution states, coined as (frame) dumps, are extracted at a high frequency even in the middle of JIT compiled functions.DUMPLING finds eight new bugs in the thoroughly tested V8 engine, where previous differential fuzzing approaches struggled to discover new bugs.We receive $11,000 from Google's Vulnerability Rewards Program for reporting the vulnerabilities found by DUMPLING.

Intel Corporation, European Commission, Deutsche Forschungsgemeinschaft, Schweizerischer Nationalfonds zur Förderung der Wissenschaftlichen Forschung
Openalex Percentile: Top 4%
Software Testing and Debugging Techniques
6.92
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

DUMPLING: Fine-grained Differential JavaScript Engine Fuzzing — Flavio Toffalini, Christian Wressnegger, et al. · (2025) | TGRS Research Map | TGRS