SmartOracle -- An Agentic Approach to Mitigate Noise in Differential Oracles
Srinath Srinivasan, Tim Menzies, Marcelo D'Amorim
TL;DR
SmartOracle presents an agentic framework that decomposes the differential fuzzing triage task into specialized LLM sub-agents to filter noise and identify true JavaScript specification violations. By combining discrepancy analysis, specification grounding, and terminal verification with a semi-supervised ground-truth propagation method, it achieves $0.84$ recall with $18\%$ false positives, while delivering $4\times$ faster analysis and $10\times$ lower API costs than a sequential LRM baseline. In active fuzzing campaigns, it uncovered previously unknown, specification-level bugs across V8, JavaScriptCore, GraalJS, and related engines, with several confirmed or fixed upstream. The approach demonstrates that agented architectures, when paired with semi-supervised evaluation, can meaningfully scale and improve the reliability of differential oracles in complex software systems, with potential applicability to other domains beyond JavaScript engines.
Abstract
Differential fuzzers detect bugs by executing identical inputs across distinct implementations of the same specification, such as JavaScript interpreters. Validating the outputs requires an oracle and for differential testing of JavaScript, these are constructed manually, making them expensive, time-consuming, and prone to false positives. Worse, when the specification evolves, this manual effort must be repeated. Inspired by the success of agentic systems in other SE domains, this paper introduces SmartOracle. SmartOracle decomposes the manual triage workflow into specialized Large Language Model (LLM) sub-agents. These agents synthesize independently gathered evidence from terminal runs and targeted specification queries to reach a final verdict. For historical benchmarks, SmartOracle achieves 0.84 recall with an 18% false positive rate. Compared to a sequential Gemini 2.5 Pro baseline, it improves triage accuracy while reducing analysis time by 4$\times$ and API costs by 10$\times$. In active fuzzing campaigns, SmartOracle successfully identified and reported previously unknown specification-level issues across major engines, including bugs in V8, JavaScriptCore, and GraalJS. The success of SmartOracle's agentic architecture on Javascript suggests it might be useful other software systems- a research direction we will explore in future work.
