Clutch Control: An Attention-based Combinatorial Bandit for Efficient Mutation in JavaScript Engine Fuzzing
Myles Foley, Sergio Maffeis, Muhammad Fakhrur Rozi, Takeshi Takahashi
TL;DR
The paper tackles the inefficiency of random mutation location selection in JavaScript fuzzing by framing the problem as a contextual combinatorial bandit with volatile, variable-length test cases. It introduces Clutch, an attention-based neural bandit that uses a Pointer Network and Concrete Dropout to adapt exploration and predict which mutation targets to apply. Empirical evaluation shows Clutch improves test-case validity by about 20.3% and coverage-per-test-case by about 8.9% across fuzzers and engines, and achieves substantially lower regret than state-of-the-art bandits in volatile and combinatorial settings. The results demonstrate that learning where to mutate can significantly enhance fuzzing efficiency, with CLUTCH outperforming both deep and linear bandits and generalizing across different JavaScript engines and fuzzing strategies. The approach has practical impact for bug discovery and could be extended to other domains with volatile, high-dimensional action spaces and contextual inputs.
Abstract
JavaScript engines are widely used in web browsers, PDF readers, and server-side applications. The rise in concern over their security has led to the development of several targeted fuzzing techniques. However, existing approaches use random selection to determine where to perform mutations in JavaScript code. We postulate that the problem of selecting better mutation targets is suitable for combinatorial bandits with a volatile number of arms. Thus, we propose CLUTCH, a novel deep combinatorial bandit that can observe variable length JavaScript test case representations, using an attention mechanism from deep learning. Furthermore, using Concrete Dropout, CLUTCH can dynamically adapt its exploration. We show that CLUTCH increases efficiency in JavaScript fuzzing compared to three state-of-the-art solutions by increasing the number of valid test cases and coverage-per-testcase by, respectively, 20.3% and 8.9% on average. In volatile and combinatorial settings we show that CLUTCH outperforms state-of-the-art bandits, achieving at least 78.1% and 4.1% less regret in volatile and combinatorial settings, respectively.
