Skip to content

Releases: IntelLabs/kafl.fuzzer

v0.6.1

30 Jul 11:24
fb9291f
Compare
Choose a tag to compare

What's Changed

  • Fix/dynaconf validator by @Wenzel in #60
  • config: fix appdir import by @Wenzel in #61
  • config: add grimoire key in validators by @Wenzel in #62
  • settings: don't force qemu_image to be a path by @Wenzel in #65
  • manager.py: remove useless check by @Wenzel in #67
  • Parse range submit by @Wenzel in #68
  • config: fix load_config optional key parameter by @Wenzel in #69
  • config: move action as required argument for debug subcommand only by @Wenzel in #71
  • Fixing syntax error by @kiwids0220 in #72
  • fuzzer: fix find_diffs comparison by @Wenzel in #73
  • util: fix None value in find_diffs by @Wenzel in #74
  • Adding top level permissions to support Intel OSSF Scorecard requirem… by @michaelbeale-IL in #77
  • config: set qemu_append only when qemu_kernel is defined by @Wenzel in #78
  • CI: generate release notes by @Wenzel in #79

New Contributors

Full Changelog: v0.6...v0.6.1

v0.6

07 Feb 13:44
9438d73
Compare
Choose a tag to compare

🌟 Features

✨ Improvements

  • refactor kafl command-line with subcommands (#22)
    • move kafl scripts into a single kafl entrypoint:
      • kafl_fuzz.py -> kafl fuzz
      • kafl_debug.py -> kafl debug
      • kafl_cov.py -> kafl cov
      • kafl_plot.py -> kalf plot
      • kafl_gui.py -> kafl gui
      • scripts/mcat.py -> kafl mcat
    • option --afl-skip-ranges has been removed (never used anyway)
    • removed config override via $PWD/kafl.yaml (not explicit, users don't expect that behavior)
    • rename and reformat $WORKDIR/config (MessagePack) -> $WORKDIR/config.yaml (YAML)
  • add early logging of fuzzer loaded configuration before validation (#38)
    • deprecate KAFL_CONFIG_DEBUG
  • remove pygraphviz dependency (#43)
  • input config key will default to the workdir value (#58)
    • no need to specify kafl cov --input $KAFL_WORKDIR anymore

🔧 Fixes

  • avoid Qemu hang when handling ABORT in pre-init phase (#34)
  • fix including default_settings.yaml in the final package (#35)

📖 Documentation

  • add docs/fuzzer_configuration.md to document new configuration management based on Dynaconf (#22)

🧰 Behind the scenes

v0.5.1

07 Feb 13:23
Compare
Choose a tag to compare

🌟 Features

✨ Improvements

🔧 Fixes

  • avoid Qemu hang when handling ABORT in pre-init phase (#34)

📖 Documentation

🧰 Behind the scenes

v0.5

10 Nov 13:39
e20d181
Compare
Choose a tag to compare

First release of kAFL Fuzzer since refactoring to separate project!

🌟 Features

  • new option --log-crashes directly stores hprintf snippets of unique crashes
  • new default option --kickstart injects random seeds if Workers idle (insufficient seeds/corpus)
  • turn hardcoded qemu config into configurable qemu_base, qemu_append, qemu_extra options
    • replace hardcoded serial and append params with default config values (#7)
    • enable variable expansion for qemu_base and qemu_extra options (#19)
  • use official Github releases (#31)

✨ Improvements

  • Smarter CPU affinity selection (#10)
  • Update --cpu-offset to override smart CPU affinity selection (#27)
  • Redirect qemu logging on --log (#29)
  • Option --trace has changed to write binary PT dumps as seen during execution (faster + resilient to non-determinism)
  • Option --trace-cb was added for legacy storing decoded traces via libxdc callback
  • Delay progress display until Worker is ready, detect and exit on guest abort (#25)
  • Detect and abort on Qemu startup failure failure (#30)

🔧 Fixes

  • abort if both --resume and --purge are given (#2)
  • fix infinite loop in kafl_debug / gdb action (#3)
  • worker.py: fix custom timeout setting in execute_naked() (#4)
  • robustness fixes to qemu startup (#5)
  • Fix config loading defaults and error handling (#9)
  • ghidra_run.sh: fail to stderr (#11)
  • config.py: apply expand_vars only to existing config options (#20)
  • kafl_cov.py: fix handling of timeout exception (#21)
  • fix kafl_debug.py for new pt dump trace mode (#26)

📖 Documentation

🧰 Behind the scenes

  • Basic CI/CD + fix several flagged issues (#16)
  • Use ghidra role (#8)
  • Remove install.sh (#15)
  • Replace custom logger with stdlib logging (#17)
  • tests: initialize mutation helper non-class for pytest (#18)
  • cpu affinity: try to continue even if cpus seem busy (#23)