Skip to main content

Fuzzing

Fuzzing tools test software by generating malformed inputs to discover memory safety bugs, parser crashes, and logic flaws before code reaches production.

7 Tools Cataloged
ToolLicensePlatformsPricingAction
AFL++AGPL-3.0-or-laterLinux, macOS, FreeBSD, NetBSD, OpenBSD, Solaris, AndroidFree / CommercialProfile
AtherisApache-2.0Linux, macOSOpen SourceProfile
BoofuzzGPL-2.0-onlyLinux, WindowsOpen SourceProfile
HonggfuzzApache-2.0Linux, macOS, FreeBSD, NetBSD, OpenBSD, Windows, AndroidOpen SourceProfile
JazzerApache-2.0Linux, macOS, WindowsOpen SourceProfile
libFuzzerApache-2.0 WITH LLVM-exceptionLinux, macOS, WindowsOpen SourceProfile
RadamsaMITLinux, macOS, FreeBSD, OpenBSD, WindowsOpen SourceProfile

Tools in Fuzzing

AFL++

Free / Commercial

Coverage-guided fuzzer with mutation engines, LLVM instrumentation plugins, and binary-only modes for finding memory safety bugs.

LicenseAGPL-3.0-or-later
PlatformLinux, macOS, FreeBSD, NetBSD, OpenBSD, Solaris, Android

Atheris

Open Source

Coverage-guided Python fuzzer from Google based on libFuzzer, designed for pure Python code and native CPython extensions.

LicenseApache-2.0
PlatformLinux, macOS

Boofuzz

Open Source

Python network protocol fuzzing framework for defining packet templates, tracking state machines, and discovering network crashes.

LicenseGPL-2.0-only
PlatformLinux, Windows

Honggfuzz

Open Source

Multi-threaded, feedback-driven fuzzer using software and hardware coverage counters to uncover memory corruption defects.

LicenseApache-2.0
PlatformLinux, macOS, FreeBSD, NetBSD, OpenBSD, Windows, Android

Jazzer

Open Source

Coverage-guided in-process fuzzer for Java and the JVM based on libFuzzer, with built-in sanitizers for memory and logic bugs.

LicenseApache-2.0
PlatformLinux, macOS, Windows

libFuzzer

Open Source

In-process, coverage-guided evolutionary fuzzing engine from LLVM for testing C and C++ libraries with AddressSanitizer.

LicenseApache-2.0 WITH LLVM-exception
PlatformLinux, macOS, Windows

Radamsa

Open Source

General-purpose mutational fuzzer that generates malformed test samples to test parser resilience and file format handlers.

LicenseMIT
PlatformLinux, macOS, FreeBSD, OpenBSD, Windows

Frequently Asked Questions

What is Fuzzing?

Fuzzing tools test software by generating malformed inputs to discover memory safety bugs, parser crashes, and logic flaws before code reaches production.

What topics does the Fuzzing category cover?

Coverage-Guided Fuzzing, Protocol & API Fuzzing, Mutation Engines, Crash Triage & Corpus Management, Compiler Sanitizer Integration

About Fuzzing

Fuzzing tools automatically test software by feeding it malformed, randomized, or edge-case inputs to discover crashes, memory leaks, and logic errors. The category divides into coverage-guided fuzzers and protocol fuzzers. Coverage-guided fuzzers like AFL++, libFuzzer, and honggfuzz track which code paths each input exercises, then mutate inputs that reach new code to maximize path coverage. They are effective at finding memory corruption bugs in parsers, decoders, and file format handlers. Protocol fuzzers like boofuzz target network protocols and APIs by sending malformed messages in sequence, testing state machines and authentication flows. Fuzzing engines produce crash inputs that developers can reproduce and debug. When integrated into CI pipelines, fuzzing catches regressions in parsing code before releases. Modern fuzzing frameworks provide crash triage (grouping similar crashes), corpus management (storing inputs that maximize coverage), and sanitizers (detecting memory errors like buffer overflows and use-after-free during fuzzing runs). Most fuzzing tools are open source and integrate with compiler sanitizers like AddressSanitizer and UndefinedBehaviorSanitizer for deeper bug detection.

Covered Topics & Disciplines

Coverage-Guided FuzzingProtocol & API FuzzingMutation EnginesCrash Triage & Corpus ManagementCompiler Sanitizer Integration