Skills Explorer Add Skills

libafl

An agent skill by trailofbits, from trailofbits/skills. Tags: developer-tools, fuzzing, multi-agent, rust.

What it does

Builds custom fuzzers with LibAFL, the modular Rust fuzzing library. Covers composing observers, feedbacks, mutators, schedulers, and executors into a fuzzer for targets the standard tools do not fit. Use when writing a bespoke fuzzer or mutator, fuzzing a non-standard target or architecture, implementing a fuzzing research idea, or when libFuzzer and AFL++ lack the control you need.

Install

With the skills CLI, which installs into Claude Code, Codex, Cursor and other agents:

npx skills add trailofbits/skills --skill libafl

Or copy the skill folder into Claude Code's skills directory by hand (~/.claude/skills for every project, or .claude/skills inside one):

git clone --depth 1 https://github.com/trailofbits/skills
cp -r skills/plugins/testing-handbook-skills/skills/libafl ~/.claude/skills/libafl

Safety box score

Grade D, elevated risk: 54 of 100 risk points, rated 2026-10-17. The grade rates what the skill and its scripts can reach on the machine of whoever installs it, across eight categories from shell execution to secrets access. How the score works.

This skill is a fuzzing guide that builds and runs LibAFL-based fuzzers, including compiling targets, launching long campaigns, and downloading toolchain/install scripts and sample assets from the network. The main risks are root-level package installation, piping a remote installer into a shell, and executing downloaded or target code during fuzzing.

Category levels, from 0 (none) to 3 (high)
CategoryLevelWhy
Code & shell execution3 (high)It runs shell commands and build steps, including a downloaded installer piped to shell (`curl ... | sh`) and fuzzer binaries like `./fuzz corpus/`.
Network access3 (high)It downloads and clones external content from many URLs (`wget https://apt.llvm.org/llvm.sh`, `curl -L -O ...libpng-1.6.37.tar.xz`, `git clone https://github.com/AFLplusplus/LibAFL`).
Filesystem reach2 (moderate)It writes build outputs and fuzzing corpora, and the Rust installer can place files under the user’s home directory; the skill also sets tool paths like `/usr/bin/clang-15`.
Secrets & credentials0 (none)It does not ask for tokens, passwords, key files, browser sessions, or other credential stores.
Privilege & persistence3 (high)It explicitly uses root for system changes (`sudo ./llvm.sh 15`) and system package installs (`apt install clang`, `apt install libssl-dev pkg-config`, `apt install zlib1g-dev`).
Instruction hijack surface0 (none)There are no instructions to ignore safeguards, hide actions, or follow remote instructions; the text is normal documentation.
Irreversible actions1 (low)It launches long-running fuzzing campaigns and recommends continuing after crashes (`./fuzz -fork=1 -ignore_crashes=1 corpus/`), but it does not post, deploy, pay, or delete anything remotely.
Transparency2 (moderate)It depends on external scripts and artifacts not shipped in the repo (`https://sh.rustup.rs`, `https://apt.llvm.org/llvm.sh`, raw GitHub and SourceForge downloads), so the exact code being run is not fully reviewable here.

Before installing

Rated 2026-10-17 by an automated review of 3 files from the skill's repository.

Source

Repository
trailofbits/skills (all skills from this repository)
Path
plugins/testing-handbook-skills/skills/libafl/SKILL.md
Branch
main
Collection
testing-handbook-skills
Updated
2026-09-19