DynamiQ: Unlocking the Potential of Dynamic Task Allocation in Parallel Fuzzing

📅 2025-10-05
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
Existing parallel fuzzing approaches typically treat individual seeds as task units, ignoring program call-graph structure—leading to redundant task allocation and inefficient exploration. This paper proposes DynamiQ, the first framework to define call-graph nodes as fundamental task units, integrating runtime coverage feedback with dynamic load balancing to enable structure-aware, adaptive task partitioning and scheduling. Built upon the LibAFL framework, DynamiQ incorporates static call-graph analysis and task-aware fuzzing techniques. We evaluate it across 12 real-world programs over 25,000 CPU hours. Results demonstrate that DynamiQ significantly reduces redundant exploration, achieves an average 18.7% improvement in code coverage, increases vulnerability discovery by 32%, and discloses nine previously unknown CVEs.

Technology Category

Application Category

📝 Abstract
We present DynamiQ, a full-fledged and optimized successor to AFLTeam that supports dynamic and adaptive parallel fuzzing. Unlike most existing approaches that treat individual seeds as tasks, DynamiQ leverages structural information from the program's call graph to define tasks and continuously refines task allocation using runtime feedback. This design significantly reduces redundant exploration and enhances fuzzing efficiency at scale. Built on top of the state-of-the-art LibAFL framework, DynamiQ incorporates several practical optimizations in both task allocation and task-aware fuzzing. Evaluated on 12 real-world targets from OSS-Fuzz and FuzzBench over 25,000 CPU hours, DynamiQ outperforms state-of-the-art parallel fuzzers in both code coverage and vulnerability discovery, uncovering 9 previously unknown bugs in widely used and extensively fuzzed open-source software.
Problem

Research questions and friction points this paper is trying to address.

Improves parallel fuzzing efficiency through dynamic task allocation
Reduces redundant exploration using program call graph analysis
Enhances code coverage and vulnerability discovery in software testing
Innovation

Methods, ideas, or system contributions that make the work stand out.

Uses program call graph for dynamic task allocation
Refines task allocation with runtime feedback mechanisms
Optimizes parallel fuzzing through task-aware strategies