ossfuzz
An agent skill by trailofbits, from trailofbits/skills. Tags: cloud, devops, fuzzing, testing.
What it does
Enrolls a project in OSS-Fuzz, Google's free continuous fuzzing service for open source, and drives it locally. Covers project.yaml, Dockerfile and build.sh setup, the helper scripts, reproducing OSS-Fuzz crash reports, and the acceptance criteria. Use when setting up continuous fuzzing for an open-source project, reproducing an OSS-Fuzz bug report, or testing an OSS-Fuzz build before submitting it.
Install
With the skills CLI, which installs into Claude Code, Codex, Cursor and other agents:
npx skills add trailofbits/skills --skill ossfuzz
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/ossfuzz ~/.claude/skills/ossfuzz
Safety box score
Grade C, moderate risk: 39 of 100 risk points, rated 2026-10-14. 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 guide for building and running OSS-Fuzz harnesses locally and for enrolling a project in OSS-Fuzz. Its main risks are that it downloads external images and corpora, runs project build scripts inside Docker, and uses a privileged container for fuzzer execution, which expands the blast radius of anything you build.
| Category | Level | Why |
|---|---|---|
| Code & shell execution | 2 (moderate) | It tells you to run `uv run ... infra/helper.py build_image/build_fuzzers/run_fuzzer` and examples execute project scripts like `./autogen.sh`, `./configure`, `make`, and `cargo fuzz build`, so it does run code from the target project. |
| Network access | 2 (moderate) | The workflow fetches remote content with `git clone https://github.com/google/oss-fuzz`, `build_image --pull`, and `gsutil`/coverage corpus downloads, so data and build inputs come from the network. |
| Filesystem reach | 2 (moderate) | The sample runner bind-mounts a host path (`-v /private/tmp/oss-fuzz/build/out/irssi:/out`) and writes artifacts under `/build/out/<project-name>/`, so it can modify local files in the workspace/temp area. |
| Secrets & credentials | 0 (none) | The skill does not mention reading tokens, keychains, `.env` files, browser sessions, or other credential stores. |
| Privilege & persistence | 2 (moderate) | The example run uses `docker run --rm --privileged ...`, and the Dockerfile examples install packages with `apt-get`, so it relies on elevated container/daemon capabilities. |
| Instruction hijack surface | 0 (none) | There is no instruction to ignore safeguards, hide information, follow fetched remote prompts, or otherwise manipulate the agent's policy. |
| Irreversible actions | 2 (moderate) | Its purpose is to enroll a project in OSS-Fuzz, a continuous fuzzing service that runs on its own once set up, though the text also notes enrollment may require approval. |
| Transparency | 0 (none) | All shipped files are plain text (Markdown, YAML, SVG) and there are no binaries, base64 blobs, or hidden runtime downloads in the skill itself. |
Before installing
- Read the target project's `build.sh`/Dockerfile for `autogen.sh`, `configure`, `cargo fuzz`, `curl`, or `git clone` calls.
- Run it first in a disposable VM or container; the documented harness path uses `docker run --privileged`.
- Decide whether you need networked corpus/coverage downloads, or whether `--no-corpus-download` is enough.
- Keep your real home directory and secrets out of the mounted workspace; use a scratch checkout if possible.
Rated 2026-10-14 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/ossfuzz/SKILL.md
- Branch
- main
- Collection
- testing-handbook-skills
- Updated
- 2026-09-19
Related skills
- terraform-engineer — Use when implementing infrastructure as code with Terraform across AWS, Azure, or GCP.
- aflpp — Sets up and runs AFL++ for multi-core fuzzing of C/C++ projects built with afl-clang-fast or afl-gcc-fast.
- atheris — Sets up and runs Atheris, the coverage-guided Python fuzzer built on libFuzzer.
- cargo-fuzz — Sets up and runs cargo-fuzz, the standard fuzzing tool for Cargo-based Rust projects. Covers cargo fuzz init, the nightly toolchain requirement, fuzz_target!
- fuzzing-dictionary — Builds and applies fuzzing dictionaries so a fuzzer can produce the keywords, magic bytes, and tokens a target expects.
- fuzzing-obstacles — Patches past the barriers that stop a fuzzer making progress — checksum and hash verification, magic-value validation, time-based seeds.