Skip to content

libghostty-vt parser fuzzing, generic fuzz harness, using AFL++ - #11089

Merged
mitchellh merged 19 commits into
mainfrom
fuzz
Mar 1, 2026
Merged

mitchellh merged 19 commits into
mainfrom
fuzz

Conversation

@mitchellh

@mitchellh mitchellh commented Mar 1, 2026 •

Copy link
Copy Markdown
Contributor

This adds a test/fuzz-libghostty which is a standalone zig build target for building an AFL++ instrumented executable for fuzzing the libghostty-vt parser. I also added a pkg/afl++ (based on zig-afl-kit) so instrumenting objects and using AFL++ is a bit easier.

Fuzzing libghostty-vt's parser is as easy as zig build run, but see the README for a lot more details. I ran the fuzzer for ~14 hours total and only found one crash #11088. I'm pretty confident at this point our Parser layer isn't obviously crash-able, but need to instrument more places to fuzz.

We don't use Zig's built-in fuzzing yet because as of 0.15 (our current stable), it isn't ready and AFL++ is an industry proven tool to do this.

@mitchellh
mitchellh marked this pull request as ready for review March 1, 2026 17:24
@mitchellh
mitchellh merged commit a48cb63 into main Mar 1, 2026
130 checks passed
@mitchellh
mitchellh deleted the fuzz branch March 1, 2026 21:16
@github-actions github-actions Bot added this to the 1.3.0 milestone Mar 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant