-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
go-fuzz support #36
Comments
There are two areas:
|
FTR, issue about fuzzing support in Go: |
We need to ensure that Go fuzzing support will be integratable with OSS-Fuzz or it will be a bold fail if we later realize that it's poorly suitable for setups like OSS-Fuzz. |
Ideally Go additional of a new Go target boils down to listing the import path (e.g. For Go we potentially have fuzzer engine and target as 2 separate binaries (it may not work well to have the engine in the intrumented binary). We should be able to support this, right? We can have the engine as the binary and target as data dependency of the binary, right? What flags/features OSS-Fuzz needs from a fuzzing engine? Anything special? FTR, there is a proposal with Go flags: |
Yay! I'm sure it's all doable, we just need to plan some time for doing that. //cc @inferno-chromium
Yes, AFL works in a similar way and we use it fine.
We'll need crash stacktraces, distinct crash signatures for different crash types, crash minimization, performance stats (speed, coverage, corpus units, etc), something else I can't think off the top of my head. The way it works now (and probably will keep working) is that we have a launcher script for every fuzzing engine. CF calls that launcher script (there is a fairly simple interface that needs to be implemented), and the script interacts with the fuzzing engine (e.g. provides proper CMD line, runs it, does some log parsing, etc). //cc @oliverchang |
Thanks. Looks like we should not have any major problems then.
This should be extractable from raw crash in the wrapper script.
The plan is that Go fuzzer will save already minimized crashes, so this can be no-op. And this should be optional anyway.
No concrete plan for this. But assuming this is optional. |
This can be considered done. Further work is being tracked as #2714 |
go-fuzz is a fuzzer for Go:
https://github.com/dvyukov/go-fuzz
Since oss-fuzz aimed at supporting multiple fuzzers, go-fuzz support should be possible and would be useful.
go-fuzz contains 70 fuzzers for Go std lib and other popular packages but there is no story for continous running:
https://github.com/dvyukov/go-fuzz/tree/master/examples
The text was updated successfully, but these errors were encountered: