ClusterFuzz vs Fuzzilli
ClusterFuzz
google.github.ioFuzzilli
github.comSide by side
| Figure | ClusterFuzz | Fuzzilli |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | — |
| Windows | Yes | — |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Fuzz Testing Software | 8.9 (#2) | 8.4 (#6) |
| License | The ClusterFuzz repository is published under the Apache-2.0 license. | The repository identifies its license as Apache-2.0. |
| Purpose | ClusterFuzz is scalable fuzzing infrastructure that finds security and stability issues in software. | Fuzzilli is a coverage-guided fuzzer for dynamic language interpreters that mutates programs in FuzzIL and translates them to JavaScript. |
Plans
In their own words
ClusterFuzz
ClusterFuzz is open-source infrastructure for finding security and stability problems in software through fuzzing. It supports coverage-guided engines libFuzzer, AFL++, and Honggfuzz, alongside blackbox fuzzing. Its workflow can find crashes, group duplicates, minimize testcases, use bisection to locate regressions, and verify fixes. It can also file, triage, and close bugs automatically. Google uses ClusterFuzz across its products and as the fuzzing backend for OSS-Fuzz. The system is designed to run on clusters of any size; Google’s instance runs on 30,000 VMs. Production deployments use Google Cloud services, including App Engine, Cloud Storage, Cloud Datastore, Cloud Pub/Sub, BigQuery, and Stackdriver Logging and Monitoring. Local instances are supported on Linux and macOS, with some BigQuery- and Stackdriver-dependent features disabled. Although the overview mentions Monorail and Jira as examples, the architecture currently supports only Chromium-hosted Monorail. The software runs on Linux, macOS, and Windows and is licensed under Apache-2.0. Its listed price is free.
Fuzzilli
Fuzzilli is a free, open-source, coverage-guided fuzzer for dynamic language interpreters. It represents test programs in FuzzIL, mutates them, and translates them to JavaScript for execution. Its mutators can change data flow or operation parameters, generate or splice code, and combine corpus programs. Components include a mutation fuzzer, script runner, corpus, environment, minimizer, evaluator, and lifter. A target engine runs repeated scripts in a read-eval-print-reset loop, resetting between cases; multiple instances can synchronize within a process or across machines over TCP. Listed target directories include JavaScriptCore, JerryScript, QuickJS, QtJS, Serenity, SpiderMonkey, V8, XS, Duktape, and njs. Setup requires compiling a supported engine with coverage instrumentation using clang 4.0 or later, then building Fuzzilli with Swift Package Manager. Docker and Google Compute Engine tooling are provided. The project supports Linux, macOS, and self-hosted use and identifies its license as Apache-2.0. Its repository says it is not an officially supported Google product. Contributions require a Contributor License Agreement and are reviewed through GitHub pull requests.