GitHub Security Lab's MIT-licensed Fuzzing Taskflow, built on its Taskflow Agent framework, takes a GitHub owner/repo and lets an agent pick entrypoints, analyze the build, write harnesses, run AFL++, iterate on coverage, and write a per-crash vulnerability report with root cause and a suggested patch. Claude Sonnet 5 is the default model; GitHub warns to run it only in disposable environments.
Key Takeaways
- ✓One command:
./scripts/fuzzing/run_fuzzing.sh owner/repo, ideally inside a Codespace - ✓Per-iteration budgets double from 30s to 960s (~32 min per target); the loop stops after two iterations each gain <1% line coverage
- ✓Every harness is built twice: an
.aflbinary (afl-clang-lto with ASan/UBSan) for fuzzing and a.covbinary for real line/branch coverage - ✓Crashes are minimized with afl-tmin, replayed under ASan, deduplicated by stack-top hash, and given one of seven verdicts
- ✓LLM-chosen build commands run on the host with no container, so GitHub says to use only disposable, unprivileged environments
Key Decision Metrics at a Glance
Turn your technical choice into a development budget
Compare 40 dev plans & simulate token costs vs $20/mo subscriptions
Project Links & Resources
Direct AccessIn-Depth Technical Analysis
GitHub Security Lab's Fuzzing Taskflow (MIT, built on the Taskflow Agent framework) automates the human loop of continuous fuzzing for C/C++ projects. Given an owner/repo slug, the agent installs AFL++, clones the repo, picks entrypoints, writes harnesses, fuzzes, reads real coverage, and improves harnesses until a plateau, then triages crashes. Architecture: a shell driver, one taskflow YAML per stage, and MCP tools for execution; the agent decides, tools execute, and state lives in SQLite. Each harness is built as an AFL-instrumented binary and a coverage binary. Budgets double from 30s to 960s per iteration (~32 min/target) with a default 1% line-coverage plateau threshold. Structure-aware mutators cover JSON, XML, regex, PNG and TLV, plus source-derived dictionaries that grow toward uncovered guards. Crashes are minimized, ASan-replayed, deduplicated by stack-top hash, and written up with root cause, reachability, exploitability, a suggested diff and a regression-test sketch, marked review required. GitHub published no bug-count benchmarks. Claude Sonnet 5 is the default model. Run it only in a Codespace or throwaway VM because LLM-chosen build commands execute on the host.
Benchmark side-by-side against alternatives, or calculate monthly token cost vs subscription break-even.
Discussion & Comments
0Sign in to join the discussion
Connect with AI developers to exchange benchmark insights.