#LibAFL

Advanced Fuzzing Leagueaflplusplus@infosec.exchange
2025-05-30

Guess who just released #LibAFL 0.15.3?
That's right, you all did! (thank you☺️)

Highlights:

  • better forkserver
  • scriptable Lua mutations
  • SIMD performance in stable rust
  • CmpLog and RISC-V for LibAFL_Unicorn
  • TMin for LibAFL_QEMU
  • Updated Sugar for easy fuzzing

github.com/AFLplusplus/LibAFL/

#fuzzing #AFLplusplus #LibAFL #update

Advanced Fuzzing Leagueaflplusplus@infosec.exchange
2025-05-20

You can now replace libfuzzer with #LibAFL on Windows, thanks to @novafacing

github.com/AFLplusplus/LibAFL/

kriware :verified:kriware@infosec.exchange
2025-04-01

Fuzzing 101 with LibAFL

Introductory guide on fuzzing using LibAFL, covering setup, techniques, and examples to discover software vulnerabilities.

epi052.gitlab.io/notes-to-self

#Fuzzing #LibAFL

Advanced Fuzzing Leagueaflplusplus@infosec.exchange
2025-03-31

🚨 LibAFL 0.15.2 🚨

  • Rust 2024 edition
  • LibAFL_Unicorn
  • Use LibAFL rand types for other crates
  • Allow logging to StatsD
  • LibAFL_QEMU updates like binary-only ASan in Rust πŸ¦€πŸ¦€πŸ¦€, inputs via StdIn, better snapshots

And so much more:

github.com/AFLplusplus/LibAFL/

#LibAFL #Fuzzing #AFLplusplus

:verified: domenukdmnk@infosec.exchange
2025-03-10

This is so cool: The LibAFL_QEMU ASan implementation was ported to rust
github.com/AFLplusplus/LibAFL/

#LibAFL #QEMU #ASan #Rust

Advanced Fuzzing Leagueaflplusplus@infosec.exchange
2025-01-21

We've just released #LibAFL 0.15.0 - A big step toward 1.0 stable!

Featuring

2024-11-23
C Harness to #LibAFL

https://github.com/v-p-b/libfuzzer_kfx/blob/main/C2LIBAFL.md

I nice part of making an archive of my Twitter posts is that I realize I wrote stuff like this o.O #fuzzing
Advanced Fuzzing Leagueaflplusplus@infosec.exchange
2024-11-14

We've released #LibAFL 0.14 with an afl-fuzz rewrite in #LibAFL, better QEMU, FRIDA scripting, intel_pt tracing support and more!
Check it out:

github.com/AFLplusplus/LibAFL/

Advanced Fuzzing Leagueaflplusplus@infosec.exchange
2024-01-06

Late last year we released #LibAFL 0.11.2
Highlights:

  • Unicode-preserving mutators, better mutations for text!
  • GSoC project: Nicer TUI
  • Scalability introspector
  • Improved libafl_frida
  • Extended libafl_qemu - added CmpLog and more!

Full changelog:
github.com/AFLplusplus/LibAFL/

#fuzzing #libafl #AFLplusplus

Advanced Fuzzing Leagueaflplusplus@infosec.exchange
2024-01-04

The recording of our #37c3 talk "Fuzz Everything, Everywhere, All at Once - Advanced QEMU-based fuzzing" can be found here

#fuzzing #LibAFL #QEMU

media.ccc.de/v/37c3-12102-fuzz

Advanced Fuzzing Leagueaflplusplus@infosec.exchange
2023-08-31

We released #LibAFL 0.11 (and 0.11.1 with a doc fix).

Highlights:

  • libafl_libfuzzer: a full #LibFuzzer replacement
  • libafl_bolts: low-level building blocks for #rust
  • libafl_qemu: hooks and fuzzing in #QEMU 8, #Hexagon support, ..
  • Updated #FRIDA
  • ...

github.com/AFLplusplus/LibAFL/

Have fun #fuzzing

2023-08-02

Fuzz your cargo-fuzz harness with LibAFL!

I'm happy to share the fuzz runtime described in our recent FUZZING'23 report, CrabSandwich, which expands on libafl_libfuzzer to allow for Rust support. This allows Rust developers to switch away from the now-in-stasis libFuzzer to a LibAFL-based runtime which supports most common features of libFuzzer seamlessly.

Want to try it out for yourself? Simply edit your existing cargo-fuzz harnesses' Cargo.toml to change the libfuzzer-sys dependency as shown here: github.com/rust-fuzz/cargo-fuz

In most cases, the entire edit is a single-line change (!). At this time, we only support Linux, but are looking for contributions to expand to Windows and macOS as well.

Happy hunting! #fuzzing #rust #libafl #AFLplusplus

Advanced Fuzzing Leagueaflplusplus@infosec.exchange
2023-04-19

With lots of community help, we're proud to release #LibAFL 0.10!
➟ AFL++'s Redqueen
➟ CASR integration for crash analysis
➟ Low-overhead timeout handling
➟ EcoFuzz
➟ Full AFL++ forkserver support
➟ WASM fuzzing example
and much more. Get your copy at github.com/AFLplusplus/LibAFL/

Advanced Fuzzing Leagueaflplusplus@infosec.exchange
2023-01-31

LibAFL 0.9.0 is out with a new logoπŸ”₯

Highlights:
β†’ QEMU user-mode and system-mode snapshot fuzzing
β†’ Stable CorpusId when removing/updating entries in Corpus
β†’ Tinyinst binary-only instrumentation
β†’ Full support to AFL++ binaries with forkserver
...

github.com/AFLplusplus/LibAFL/

#fuzzing #libafl #AFLplusplus

:verified: domenukdmnk@infosec.exchange
2023-01-05

Just found out #LibAFL launcher can print output of child processes if you set the LIBAFL_DEBUG_OUTPUT=1 env variable.

I knew this some time in the past, but forgot..

#fuzzing #fuzzingTips

:verified: domenukdmnk@infosec.exchange
2022-12-19

WRT #libfuzzer deprecation: the official alternative uses out-of-process fuzzing, which means the fuzzer doesn't run in the same process as the target.

This is what the original #AFL fuzzer does, as well.

It turns out that this doesn't scale well, thanks to IPC overhead and context switches for _every single _ testcase (of which you can reach millions per second of).*

We spent years creating good in-process fuzzing with #LibAFL, trying to match the success of libfuzzer, and it's sad to see the OG in-process fuzzer get depreciated in favour of an (IMHO) technically inferior alternative.

This may be a good engineering choice if you don't care about CPU cost and have an almost infinite amount of CPUs to spare.

The amount of companies worldwide that has a virtually infinite amount of CPU cores to spare for #fuzzing is low.

There are multiple ways to bring fuzzing to the masses, but this is not the one I would pick.

*the one reason where out-of-process fuzzing is favorable is for crashing targets. Instead of slowly restoring your state, you can simply respawn the target. However, most fuzzing campaigns are over when crashes are found.

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst