Documentation Index
Fetch the complete documentation index at: https://mintlify.com/AFLplusplus/AFLplusplus/llms.txt
Use this file to discover all available pages before exploring further.
Recent Versions
Version ++4.36a (Development)
afl-fuzz- FrameShift integrated and enabled by default. Disable with
AFL_FRAMESHIFT_DISABLEand configure effort viaAFL_FRAMESHIFT_MAX_OVERHEAD. Extensive fuzzbench analysis shows it improves time to new coverage at best, does nothing at worst. Research paper - Added
AFL_FORCE_FASTRESUMEto ignore saved hash of the target (only works if coverage map size unchanged) - Prevent executed instrumented programs by the fuzz target from manipulating coverage
- LLVM 22 support (handling include file changes)
- Added g_/curl_/xml_ string support for COMPCOV
- New env
AFL_LLVM_DENY_EXECaborts any common exec calls - GCC plugins marked as unmaintained (seeking maintainer with gimple knowledge)
- Optimized hidden CFG instrumentation (don’t instrument vector selects)
- New C implementation by @kcwu (currently not built due to maturity)
- afl-cmin.py no longer changes behavior to hash original filenames
- afl-cmin and afl-cmin.py now honor
AFL_SHA1_FILENAMES
- Fixed issue when
AFL_EXITPOINTnot set, which could prevent crash detection
Version ++4.35a (Release)
Major Features- GUIFuzz++ merged: Unleashing Grey-box Fuzzing on Desktop GUI Applications (Paper)
- Fixed syncing issues with crashes and custom mutators
- Improved process cleanup
- Huge refactor for default pcguard instrumentation with bug fixes
- Complete hidden decision coverage for LTO mode
- IJON fix to search for necessary includes
- Allow compiling gcc plugin with clang++
- Fixed unusual bit sizes in cmplog-instructions-pass
- IJON support added (see qemu_mode/README.md)
- Leaner code with fewer warnings
- Fixed custom trimmings
Version ++4.34c (Release)
Major Features- IJON integration (see docs/IJON.md for usage)
- UnicornAFL v3 with major improvements
- Large improvements to CMPLOG
- Scroll down before clearing screen to preserve content
- Minor bug fixes
- Enabled LLVM 22
- New env
AFL_COMPILER_LAUNCHERto allow ccache usage - Fixed offset calculation bug in AFL++ PCGUARD
- Make
AFL_DUMP_MAP_SIZEwork for CLASSIC modes - Fixed deprecation warnings for LLVM 20+
- Fixed 128 bit support for cmplog-switches pass
Version ++4.33c (Release)
afl-fuzz- Use
AFL_PRELOAD_DISCRIMINATE_FORKSERVER_PARENTto disable fork with AFL_PRELOAD - Fixed FAST power schedules (bug introduced in 4.32c)
- Colors for NO_UI output
- Fixed potential sync issues when resuming sessions
- More 64-bit architecture support
- Added instrumenting hidden edges (approx 5% previously missed)
- Fixed
AFL_SAN_NO_INSTwith gcc_plugin - MacOS aflpp driver compilation fix
- Make
AFL_DUMP_MAP_SIZEwork with sanitizer issues
- Better MIPS persistent mode support
AFL_EXITPOINTsupport addedAFL_QEMU_BLOCK_COVblock coverage support added
- New afl-cmin.py implementation (much faster)
- Nyx mode now fully works for minimizing
Version ++4.32c (Release)
afl-fuzz- Fixed bug with fast restart of fully fuzzed corpus
- Memory leak fixes
- Removed deprecated files from queue/.state
- Fixed bitmap update function
- Fixed afl_custom_queue_get
- Fixed pass support for LLVM 20
- Dropped plugin support for LLVM 13
- Fixed
AFL_OLD_FORKSERVER
- Fixes for new MacOS + M4 hardware
Version ++4.31c (Release)
Major Features- SAND mode added (docs/SAND.md) for more efficient fuzzing with sanitizers
- Splicing phase now DISABLED by default (research showed it’s counterproductive). Enable with
-u - Python 3.13+ support
- Loose file and shared memory permissions on Android and iPhone
- LLVM 20 support
-fsanitize=fuzzernow inserts libAFLDriver.a early- Added
__sanitizer_weak_hook_*functions - Fixed bug with large map sizes when multiple libraries loaded
Key Historical Features
Version ++4.30c
- Fastresume feature: Skip calibration phase on restart if target unchanged
- Improved seed selection algorithm
- Added
AFL_CUSTOM_MUTATOR_LATE_SEND - New
-l Xoption for base64 transformation solving
Version ++4.20c
- New forkserver communication model
- Support for up to 4 billion coverage edges (up from 6 million)
- New
make PERFORMANCE=1option for CPU-specific optimizations - Persistent record feature expanded to support replay
Version ++4.10c
- Default power schedule changed to EXPLORE
- Better deterministic fuzzing available with
-D - LLVM 18 support
- Injection (SQL, LDAP, XSS) fuzzing feature
Version ++4.00c
- Complete documentation restructuring
- Nyx mode (full system emulation) added
- Unicorn_mode moved to unicorn2
- New binary-only fuzzing mode: coresight_mode for aarch64
Version ++3.00c
- All compilers combined to afl-cc
- New seed selection with weighted randoms
- Default schedule changed to FAST
- Memory limits disabled by default
- rpc.statsd support added
For the complete changelog including all versions, see the full Changelog.md on GitHub.

