0.13.0
Highlights
- DDFuzz integration in libafl_cc
- libafl_nyx update to latest NYX
- GenStage, a stage for generational fuzzing
- Stable
type_eq
- Non-AGPL version of Nautilus grammar fuzzer
What's Changed
- Readme update by @tokatoka in #2046
- bolts: core affinity simplification for freebsd. by @devnexen in #2049
- Debugging tips by @tokatoka in #2048
- Rework of libafl_qemu configuration by @rmalmain in #2054
- DDFuzz by @tokatoka in #2056
- Fix some missing tracking hints by @addisoncrump in #2058
- Debugging upd by @tokatoka in #2062
- Missing tracking hints (oops) by @addisoncrump in #2063
- Split edges_map_size and edges_map_size_alloc by @tokatoka in #2012
- Pr/fixing forkserver libafl cc by @mkravchik in #2066
- Fix main not passing CI tests by @rmalmain in #2075
- Fixing the inconsistency btw #2012 and #2066 by @mkravchik in #2074
- Fix main not passing CI tests V2 by @rmalmain in #2076
- Use tee, not redirect by @addisoncrump in #2078
- Update libafl_nyx to newest qemu-nyx and nyx-packer by @GanbaruTobi in #2070
- Revert splitting libafl_edges_map_max and libafl_edges_map_in_use by @tokatoka in #2079
- Fix libfuzzer by simply adding the needed feature by @addisoncrump in #2080
- Implement
Hash
for MapObserver by @edwin1729 in #1989 - Revert "Revert splitting libafl_edges_map_max and libafl_edges_map_in_use" by @tokatoka in #2082
- Add a warning to say never use EDGES_MAP.len() by @tokatoka in #2083
- cargo-fuzz testing by @addisoncrump in #2081
- Faster cargo check by @tokatoka in #2084
- Fix typo in setup_libxml2.sh by @GanbaruTobi in #2088
- Run qemu_systemmode tests with self-hosted runners by @rmalmain in #2018
- Only run QEMU tests if there is a QEMU-related change. by @rmalmain in #2090
- Fix #1932 by @tokatoka in #2089
- Fix cached corpus in frida_libpng by @tokatoka in #2091
- Fix failing filter action in CI by @rmalmain in #2092
- Symcc Update by @tokatoka in #2047
- libafl_bolts: some improvements to the
rands
module by @flyingmutant in #2086 - Add FeedbackFactory implementations for CrashFeedback, CombinedFeedback and DiffFeedback. by @djoooooe in #2060
- Introduce AFL_EXIT_ON_SEED_ISSUES by @R9295 in #2085
- Add TypeRefCreator trait by @tokatoka in #2065
- refactor(snapshot.rs): use const generics by @vringar in #2069
- libafl_bolts: more
rands
improvements by @flyingmutant in #2096 - Rename from ReReference to Reference by @tokatoka in #2099
- Small refactoring of libafl_qemu structure by @rmalmain in #2098
- Split android and ios tests by @addisoncrump in #2106
- Remove jobs dependency in CI by @tokatoka in #2108
- Add recv_blocking_with_flags by @addisoncrump in #2102
- add crash_exitcode to Forkserver to accomodate AFL_CRASH_EXITCODE by @R9295 in #2107
- Batch timeout fix? by @tokatoka in #2109
- Match by Ref fix by @addisoncrump in #2105
- Allow for AsIter(Mut)/AsSlice(Mut) to be implemented in safe Rust by @langston-barrett in #2120
- Restrict more on edges map API by @tokatoka in #2117
- libafl_bolts:
rands
super mega ultra giga house cleaning of doom by @flyingmutant in #2123 - Improve
OnDiskTOMLMonitor
by @clesmian in #2125 - Fix Ctrl-C Handler by @tokatoka in #2124
- Change centralized launcher signature by @tokatoka in #2094
- Qemu update to latest version + various fixes by @rmalmain in #2119
- add mmap hooks to libqasan by @cube0x8 in #2122
- ctrl c handler fix for non-fork mode by @tokatoka in #2132
- Fix QEMU doc not building (again) by @rmalmain in #2130
- Allow setting stdout_file in non-fork launcher by @vringar in #2127
- Fix QEMU systemmode fuzzers exit code by @rmalmain in #2133
- Fix DDFuzz instrumentation by @tokatoka in #2134
- Making CommandExecutor generic on the specific Input by @riesentoaster in #2129
- Penalize testcase that has found objectives by @tokatoka in #2093
GenStage
: A stage for generational (e.g., black-box) fuzzers by @langston-barrett in #2137- Fix incrementing
found_objective
by @tokatoka in #2139 - Rename Reference to Handle by @tokatoka in #2142
- Separate map observers by @tokatoka in #2143
- Add windows test & ci & fix by @tokatoka in #2144
- Answer "How to leave TUI screen" by @tokatoka in #2146
- Qemu ctrl c exit by @tokatoka in #2147
- Add null ptr to devices vector by @cube0x8 in #2141
- QEMU generic memory iterator by @rmalmain in #2148
- Change special exitcode from 137 to 9 in simple.rs too by @tokatoka in #2153
- Stable type_eq by @addisoncrump in #2150
- Rename Handler -> Handled, various other cleanups after #2142 by @domenukk in #2152
- bolts: Fix minibsod build on apple by @devnexen in #2155
- Fix libafl_libfuzzer's compatibility with LLVM 14 by @maxammann in #2136
- cfg fixup by @addisoncrump in #2154
- Adding ExitCodeObserver and ExitSignalObserver by @riesentoaster in #2138
- Revert "Adding ExitCodeObserver and ExitSignalObserver" by @tokatoka in #2157
- bolts: Fix feature name in assert (
serde{,any}_autoreg
) by @langston-barrett in #2160 - Add qemu runtime defs for aarch64 by @twizmwazin in #2151
- minibsod apple using mach's crate instead. by @devnexen in #2162
- Generate QEMU stub bindings less aggressively by @rmalmain in #2164
- Clippy for Apple after #2162 by @domenukk in #2166
- Remove observer_stdout/observer_stderr from Observer trait by @tokatoka in #2167
- Dependabot by @tokatoka in #2168
- Update zip requirement from 0.6 to 1.2 by @dependabot in #2169
- Fix regex fixing generated bindings for QEMU by @rmalmain in #2163
- Revert "Update zip requirement from 0.6 to 1.2" by @domenukk in #2174
- Fix MacOS CI race condition by @domenukk in #2176
- Update which requirement from 4.4 to 6.0 by @dependabot in #2172
- Update serial_test requirement from 2 to 3 by @dependabot in #2171
- Update capstone requirement from 0.11.0 to 0.12.0 by @dependabot in #2170
- Windows frida support by @s1341 in #1607
- Regenerate QEMU binding stubs only for newer versions of the nightly compiler by @rmalmain in #2177
- Add client_stats to OnDiskJSONMonitor by @eknoes in #2181
- Update winsafe requirement from 0.0.18 to 0.0.20 by @dependabot in #2186
- Update serde_yaml requirement from 0.8 to 0.9 by @dependabot in #2185
- Update typed-builder requirement from 0.16 to 0.18 by @dependabot in #2184
- Update libloading requirement from 0.7 to 0.8 by @dependabot in #2183
- Static analysis pass by @tokatoka in #2178
- Fix libafl_sugar docs build by @domenukk in #2188
- Update cargo_toml requirement from 0.16 to 0.20 by @dependabot in #2194
- Update toml requirement from 0.4.2 to 0.8.13 by @dependabot in #2195
- Update reqwest requirement from 0.11 to 0.12 by @dependabot in #2196
- Change when to setup the ctrl c handler. by @tokatoka in #2198
- Update prometheus-client requirement from 0.21 to 0.22 by @dependabot in #2197
- Delete leftover println by @tokatoka in #2203
- Trying to fix CI by @tokatoka in #2211
- Ci fix by @tokatoka in #2212
- add AFL stage names for calibration, colorization, power and sync stages by @R9295 in #2209
- Update pyo3-build-config requirement from 0.18 to 0.21 by @dependabot in #2205
- Use MultiMonitor when fuzzing in non-forking mode by @maxammann in #2192
- Fixed infinite loop on SyncDiskStage by @cube0x8 in #2193
- QEMU command system refactoring by @rmalmain in #2189
- Report 100% stability if no unstable edges are found (extends #2215) by @domenukk in #2217
- Rename CurrentCorpusIdx -> CurrentCorpusId by @domenukk in #2216
- Faster fmt_all.sh by @rmalmain in #2218
- Remove unused dependencies by @domenukk in #2221
- Update hostname requirement from ^0.3 to ^0.4 by @dependabot in #2206
- Run Clippy on macOS by @domenukk in #2222
- Confuse clippy less by @domenukk in #2223
- Fix hook_func and implement deinit by @mineo333 in #2180
- Add testcase sampling rate by @s1341 in #2226
- launcher: add launch_delay option by @s1341 in #2227
- Update erased-serde requirement from 0.3.21 to 0.4.5 by @dependabot in #2233
- Update goblin requirement from 0.7 to 0.8 by @dependabot in #2232
- Update addr2line requirement from 0.21 to 0.22 by @dependabot in #2230
- Clean up samplig_rate, add docs by @domenukk in #2228
- Making StdOutObserver and StdErrObserver implement Observer by @riesentoaster in #2236
- New forkserver by @tokatoka in #2213
- Add BytesSubInput that allows us to mutate sub-parts of a bytes-backed input by @domenukk in #2220
- Instrumentation filters remove generic bound by @cube0x8 in #2053
- Refactor events/llmp.rs by @tokatoka in #2234
- Second round of usermode snapshot fixes by @cube0x8 in #2140
- Add peek function to Corpus by @R9295 in #2238
- Introduce StageId (extends #2201) by @domenukk in #2239
- Rename peek_next_free_id to peek_free_id (that it's the next is obvious) by @domenukk in #2243
- Make every Builder ::builder(), so BobTheBuilder::new() becomes BobThe::builder() by @domenukk in #2242
- Generic QEMU snapshot checking by @rmalmain in #2240
- LibAFL_Libfuzzer: Add clippy warnings by @domenukk in #2244
- LibAFL Dynamic Analysis by @tokatoka in #2208
- Adding DiffExitKindFeedback by @riesentoaster in #2246
- Fix
libafl_qemu.h
by @rmalmain in #2250 - Update addr2line requirement from 0.22 to 0.23 by @dependabot in #2251
- Update nix requirement from 0.27 to 0.29 by @dependabot in #2252
- Introduce feedbacks hit tracking for testcases by @R9295 in #2248
- Pre-commit hooks by @rmalmain in #2241
- Fix nix update (#2252) by @domenukk in #2255
- Fix libnyx, library upgrades by @rmalmain in #2254
- Implement tuple mapping by @addisoncrump in #2247
- Fix duplicate package warning by @Mrmaxmeier in #2258
- Tutorial fuzzer: Switch lain fork to AFLplusplus/lain by @Mrmaxmeier in #2257
- Add remove_from_all method to
Corpus
trait by @tokatoka in #2259 - Better RW errors for QEMU by @rmalmain in #2260
- Introduce CustomFilenameToTestcaseFeedback by @R9295 in #2256
- Add always_interesting option to llmp mgr by @tokatoka in #2262
- Move Nautilus to LibAFL, remove AGPL dependencies by @domenukk in #2265
- Update winsafe requirement from 0.0.20 to 0.0.21 by @dependabot in #2268
- Update ratatui to 0.26 by @domenukk in #2269
- Revert "Add always_interesting option to llmp mgr" by @tokatoka in #2274
- Revert "Revert "Add always_interesting option to llmp mgr"" by @tokatoka in #2278
- Use Self::State as much as possible and remove unnecessary type bounds by @tokatoka in #2263
- Enforce max_input_size and min_input_size in Forkserver by @R9295 in #2273
- Closure builder for inner managers of centralized. by @rmalmain in #2279
- LLmp hooks by @rmalmain in #2280
- fix WeightedScheduler reporting incorrect queue cylces by @R9295 in #2281
- libafl_qemu_build: Disable docs in user mode by @twizmwazin in #2272
- Delete 'static by @tokatoka in #2285
- Cleanup for #2280 by @tokatoka in #2286
- change Stability calculation formla to AFL++'s by @R9295 in #2275
- fix:
libafl_libfuzzer
build script by @crepererum in #2282 - Rusty LibAFL fmt by @rmalmain in #2271
- abort() when the weakly defined LLVMFuzzerTestOneInput is linked by @tokatoka in #2289
- Run ./scripts/fmt_all.sh in CI by @tokatoka in #2290
- Fix docs on crates.io for LibAFL_Frida, introduce auto-download feature by @domenukk in #2270
- Do not format Little CMS by default by @rmalmain in #2291
- CI by @tokatoka in #2292
- Update issue template by @tokatoka in #2294
- Rename string stages to unicode stages for consistency by @domenukk in #2293
- Windows clippy by @tokatoka in #2295
- Make adaptive serialization into default by @tokatoka in #2296
- Fix Closing Mmap on ShmemProvider::release_shmem by @riesentoaster in #2298
- Fixing Frida ASAN tests on Windows by @mkravchik in #2299
- Use filename for MmapShMemProvider by @tokatoka in #2303
- Add libdesyscall by @andreafioraldi in #1221
- Add support for cycling PowerSchedule on completion of a queue cycle in WeightedScheduler by @R9295 in #2300
- Fix Stdout/err Observer? by @tokatoka in #2301
- Allow trailing comma in feedback macros by @clesmian in #2308
- 0.13.0 by @tokatoka in #2253
- Fix debug assert on map_state.num_covered_map_indexes by @wtdcode in #2310
- Fix CI by @tokatoka in #2312
- Adding StdXObserver Docs by @riesentoaster in #2311
New Contributors
- @edwin1729 made their first contribution in #1989
- @flyingmutant made their first contribution in #2086
- @riesentoaster made their first contribution in #2129
- @dependabot made their first contribution in #2169
- @crepererum made their first contribution in #2282
Full Changelog: 0.12.0...0.13.0