Highlights
- New AFL++ Forkserver support in libafl_targets, new forkserver features
- Introduced LuaMutator, scriptable mutators
- SIMD performance enhancements for MapFeedback in stable rust (was nighly-only before)
- LibAFL_Nyx now on crates.io
- CmpLog and RISC-V support in LibAFL_Unicorn
- IntelPT tracing module for LibAFL_QEMU
- TMIN (testcase minimization) for LibAFL_QEMU
- Improved LibAFL_Sugar for simple LibAFL use
What's Changed
- Update QEMU syshook ret value by @rmalmain in #3092
- Send client stats with every event by @rmalmain in #3116
- Remove unecessary HasTargetBytes constraint by @bernhl in #3117
- Add back executions to Testcase by @wtdcode in #3115
- QoL Types and Changes by @wtdcode in #3124
- Migrate NopExecutor used in tests to ConstantExecutor by @wtdcode in #3129
- Add RISC-V support to libafl_unicorn by @DanTGL in #3134
- Add IntelPT tracing module to libafl_qemu systemmode with KVM by @Marcondiro in #2774
- Introduce HasAflStyleTargetArguments and restore parse_afl_cmdline for CommandExecutor by @wtdcode in #3125
- Use HashMap to manage ClientStat, Fix #3133 by @tokatoka in #3142
- Enable SIMD acceleration for stable rust toolchain by @wtdcode in #3140
- Safe qemu cpu from index by @rmalmain in #2941
- Update README.md by @domenukk in #3149
- StdScheduledMutator replaced with HavocScheduledMutator, added SingleChoiceScheduledMutator by @fcirillo00 in #3148
- Default to use SIMD acceleration map feedbacks by @wtdcode in #3157
- Make
InputFilter
public by @tokatoka in #3170 - Remove bindgen float16 workaround by @kongr45gpen in #3166
- Make fuzzer hold testcase bytes converter by @tokatoka in #3127
- Qemu tmin by @forky2 in #3118
- librasan: Fix errno_location function name by @wfdewith in #3172
- Remove duplicate corpus folders by @tokatoka in #3174
- Clean up LLVM Passes by @tokatoka in #3182
- Exclude ASAN DSO address ranges in QEMU AsanModule by @wfdewith in #3180
- librasan: Support patching Thumb functions by @wfdewith in #3176
- Nostd printf by @WorksButNotTested in #3188
- Remove unnecessary trait bounds in NautilusSpliceMutator by @henryhchchc in #3190
- Add a mention of precommit.sh to CONTRIBUTING.md by @p13l13d13 in #3194
- Split nautilus Python dependencies into separate feature by @henryhchchc in #3191
- Refactor to new forkserver by @Evian-Zhang in #3183
- Add disable/enable to Corpus by @p13l13d13 in #3193
- Add weak symbol for forkserver by @Evian-Zhang in #3196
- Enable errors backtrace always by @tokatoka in #3199
- Change formatting for durations by @WorksButNotTested in #3198
- Add cmplog shared memory mapping method for forkserver by @Evian-Zhang in #3200
- Always show user monitor in SimpleMonitor by @tokatoka in #3202
- Remove scripts/test_fuzzer.sh, Rewrite in Rust by @tokatoka in #3205
- librasan: Simplify assembly patches by @wfdewith in #3192
- Replace parallellize_cargo_check.py with Rust code by @tokatoka in #3217
- Update libafl-sugar with latest bells and whistles by @domenukk in #3209
- Support capturing stdout/stderr for ForkserverExecutor and code clean by @wtdcode in #3216
- Add Lua mutator, a mutator to write mutations in Lua by @domenukk in #3220
- Conform AFL struct casing to codebase/rust by @domenukk in #3221
- Make input loading fallible in SyncFromDiskStage by @R9295 in #3195
- Add doc links to newly added load_callback return err by @domenukk in #3222
- Optimize data structures used by librasan by @WorksButNotTested in #3227
- Add CI for utils by @WorksButNotTested in #3224
- Remove nightly feature from libafl_qemu by @tokatoka in #3231
- Allow QEMU location and version to be specified in environment by @WorksButNotTested in #3226
- Forkserver: Add __AFL_SHM_FUZZ_MAP_SIZE, clean up env variables by @domenukk in #3235
- Expose AFL++ style extended cmplog for unicornafl by @wtdcode in #3238
- Implement
HasBytesConverter
forNopFuzzer
by @wtdcode in #3239 - Remove nightly from CI. by @tokatoka in #3232
- Use
Arc<()>
to ref-countingInpuFile
by @wtdcode in #3240 - Update Dockerfile by @WorksButNotTested in #3243
- Use is_multiple_of instead of % == 0 by @p13l13d13 in #3244
- Support binding to a single core for
ForkserverExecutor
by @wtdcode in #3236 - Add support for
AFL_LLVM/GCC_ONLY_FSRV
by @wtdcode in #3245 - Let
ForkserverExecutor
beingSend
by @wtdcode in #3242 - Really unique std input file by @wtdcode in #3247
- Use shmem for forkserver several pointers by @Evian-Zhang in #3249
- Add support for reading environment by @WorksButNotTested in #3241
- Windows Support for LibAFL-LibFuzzer by @novafacing in #3130
- Add redirect stdout by @WorksButNotTested in #3256
- Support downloading devcontainer rather than building it by @WorksButNotTested in #3264
- Allow passing Qemu object to QemuBytesCoverageSugar by @jma-qb in #3261
- allow building python bindings for aarch64 by @jma-qb in #3266
- Allow
InputLocation::Stdin
to specify a file name by @wtdcode in #3265 - Various dependency updates
FIxes
- Fix fuzzbench cmplog fuzzer and rtn_extend_encoding buffer overflow by @Ch4r1l3 in #3270
- Fix tiny inst by @tokatoka in #3126
- NopStage::should_restart shall return false by @wtdcode in #3128
- Fix fork bug in libafl qemu by @rmalmain in #3109
- Fix cmplog for qemu fork executor by @rmalmain in #3145
- Fix TUI by @tokatoka in #3151
- Fix #3155 by @tokatoka in #3156
- Fix 0/0 stability feedback for libafl_nyx by @nathaniel-bennett in #3162
- fix typo in qemu_linux_process by @MingxiYe in #3163
- Fix python bindings by @jma-qb in #3164
- bolts: Fix UB in Truncate trait by @domenukk in #3207
- fix qemu launcher bug by @tokatoka in #3206
- Fix for LLVM-15 by @wtdcode in #3215
- Fix gdb_qemu after spurious find-replace by @WorksButNotTested in #3223
- Fix heartbeat by @tokatoka in #3262
- ...
New Contributors
- @DanTGL made their first contribution in #3134
- @fcirillo00 made their first contribution in #3148
- @nathaniel-bennett made their first contribution in #3162
- @MingxiYe made their first contribution in #3163
- @jma-qb made their first contribution in #3164
- @kongr45gpen made their first contribution in #3166
- @wfdewith made their first contribution in #3172
- @p13l13d13 made their first contribution in #3194
- @Ch4r1l3 made their first contribution in #3270
Full Changelog: 0.15.2...0.15.3