home / skills / plurigrid / asi / libafl
This skill helps you configure and manage LibAFL fuzzing campaigns for custom security testing, optimizing coverage and efficiency.
npx playbooks add skill plurigrid/asi --skill libaflReview the files below or copy the command above to add this skill to your agents.
---
name: libafl
description: Fuzzing framework LibAFL for custom fuzzing campaigns.
category: testing-handbook-skills
author: Trail of Bits
source: trailofbits/skills
license: AGPL-3.0
trit: -1
trit_label: MINUS
verified: true
featured: false
---
# Libafl Skill
**Trit**: -1 (MINUS)
**Category**: testing-handbook-skills
**Author**: Trail of Bits
**Source**: trailofbits/skills
**License**: AGPL-3.0
## Description
Fuzzing framework LibAFL for custom fuzzing campaigns.
## When to Use
This is a Trail of Bits security skill. Refer to the original repository for detailed usage guidelines and examples.
See: https://github.com/trailofbits/skills
## Related Skills
- audit-context-building
- codeql
- semgrep
- variant-analysis
## SDF Interleaving
This skill connects to **Software Design for Flexibility** (Hanson & Sussman, 2021):
### Primary Chapter: 2. Domain-Specific Languages
**Concepts**: DSL, wrapper, pattern-directed, embedding
### GF(3) Balanced Triad
```
libafl (−) + SDF.Ch2 (−) + [balancer] (−) = 0
```
**Skill Trit**: -1 (MINUS - verification)
### Connection Pattern
DSLs embed domain knowledge. This skill defines domain-specific operations.
This skill provides a LibAFL-based fuzzing framework for designing and running custom fuzzing campaigns. It exposes components to build harnesses, define mutators and feedback, manage corpora, and orchestrate distributed or targeted fuzz runs. The goal is practical, extensible fuzzing workflows for security testing and bug discovery.
The skill wires together core LibAFL primitives: executors to run test cases, mutators to generate inputs, feedback and monitors to evaluate interestingness and detect crashes, and corpus managers to store seeds. It supports custom harnesses in Python, instrumentation hooks, and campaign orchestration including restarts and checkpoints. You can plug in coverage, sanitizer output, or custom crash classifiers to guide mutation selection.
Do I need C/C++ knowledge to use this skill?
No — you can write harnesses and compose campaigns in Python, though understanding target internals helps design effective mutators and feedback.
Can I use this for networked services?
Yes — design a harness that sends mutated inputs over sockets and use timeouts and monitors to detect hangs and crashes.