Abstract
Parallel fuzzing, which utilizes multicore computers to accelerate the fuzzing process, has been widely used in industrial-scale software defect detection. However, specifying efficient parallel fuzzing strategies for programs with different characteristics is challenging due to the difficulty of reasoning about fuzzing runtime statically. Existing efforts still use pre-defined tactics for various programs, resulting in suboptimal performance.
In this paper, we propose Kraken, a new program-adaptive parallel fuzzer that improves fuzzing efficiency through dynamic strategy optimization. The key insight is that the inefficiency in parallel fuzzing can be observed during runtime through various feedbacks, such as code coverage changes, which allows us to adjust the adopted strategy to avoid inefficient path searching, thus gradually approximating the optimal policy. Based on the above insight, our key idea is to view the task of finding the optimal strategy as an optimization problem and gradually approach the best program-specific strategy on the fly by maximizing certain objective functions. We have implemented Kraken in C/C++ and evaluated it on 19 real-world programs against 8 state-of-the-art parallel fuzzers. Experimental results show that Kraken can achieve 54.7% more code coverage and find 70.2% more bugs in the given time. Moreover, Kraken has found 192 bugs in 37 popular open-source projects, and 119 of them are assigned with CVE IDs.
©2025 Copyright held by the owner/author(s).
In this paper, we propose Kraken, a new program-adaptive parallel fuzzer that improves fuzzing efficiency through dynamic strategy optimization. The key insight is that the inefficiency in parallel fuzzing can be observed during runtime through various feedbacks, such as code coverage changes, which allows us to adjust the adopted strategy to avoid inefficient path searching, thus gradually approximating the optimal policy. Based on the above insight, our key idea is to view the task of finding the optimal strategy as an optimization problem and gradually approach the best program-specific strategy on the fly by maximizing certain objective functions. We have implemented Kraken in C/C++ and evaluated it on 19 real-world programs against 8 state-of-the-art parallel fuzzers. Experimental results show that Kraken can achieve 54.7% more code coverage and find 70.2% more bugs in the given time. Moreover, Kraken has found 192 bugs in 37 popular open-source projects, and 119 of them are assigned with CVE IDs.
©2025 Copyright held by the owner/author(s).
| Original language | English |
|---|---|
| Title of host publication | Proceedings of the ACM on Software Engineering |
| Editors | Luciano Baresi |
| Publisher | Association for Computing Machinery |
| Pages | 274-296 |
| DOIs | |
| Publication status | Published - Jul 2025 |
| Event | 34the ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2025 - Trondheim, Norway Duration: 25 Jun 2025 → 28 Jun 2025 https://conf.researchr.org/home/issta-2025 |
Publication series
| Name | Proceedings of the ACM on Software Engineering |
|---|---|
| Number | ISSTA |
| Volume | 2 |
| ISSN (Electronic) | 2994-970X |
Conference
| Conference | 34the ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2025 |
|---|---|
| Abbreviated title | ISSTA 2025 |
| Place | Norway |
| City | Trondheim |
| Period | 25/06/25 → 28/06/25 |
| Internet address |
Bibliographical note
Research Unit(s) information for this publication is provided by the author(s) concerned.Funding
This work is funded by research donations from Huawei, TCL, and Tencent
Research Keywords
- Greybox Fuzzing
- Parallel Fuzzing
Publisher's Copyright Statement
- This full text is made available under CC-BY 4.0. https://creativecommons.org/licenses/by/4.0/
Fingerprint
Dive into the research topics of 'KRAKEN: Program-Adaptive Parallel Fuzzing'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver