-
Notifications
You must be signed in to change notification settings - Fork 2k
feat(forge): coverage guided fuzzing & time based campaigns for invariant mode #10190
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
Merged
grandizzy
merged 57 commits into
foundry-rs:master
from
0xalpharush:feat/coverage-guided-fuzzing
Jun 20, 2025
Merged
Changes from all commits
Commits
Show all changes
57 commits
Select commit
Hold shift + click to select a range
eb00624
rename coverage to line coverage for clarity
0xalpharush 5964850
WIP: coverage guided fuzzing
0xalpharush 9297097
wip persist invariant corpus
0xalpharush 58bbaff
add binning and history map
0xalpharush d03aafd
rm proptest runner, add corpus mutations
0xalpharush 2540b4d
fix: splice mutation, add some notes
0xalpharush 9818d37
Merge remote-tracking branch 'upstream/master' into feat/coverage-fuzz
grandizzy e7a878f
Clippy and more tests
grandizzy 1ceefaa
save
0xalpharush bc214cb
Merge branch 'master' into feat/coverage-guided-fuzzing
0xalpharush b7f09d8
use libafl_bolt's SIMD hitmap
0xalpharush ac19ef3
fix eyre issues
0xalpharush ce5f38d
add comments and psuedocode
0xalpharush 5954648
Revert libafl
grandizzy 9f6588c
Merge remote-tracking branch 'upstream/master' into coverage-re
grandizzy 047bb42
Typo
grandizzy ecbed4a
Fix win config test
grandizzy 06bc7ec
cleanup, save corpus at the end of run, if new coverage
grandizzy c24aa37
consolidate corpus manager
grandizzy 0b678fe
Consolidate tx manager corpus logic
grandizzy b1a189b
Review changes: do not stop fuzzing if corpus replay failures, report
grandizzy 1077cad
Default gzip corpus and config to toggle json/gzip
grandizzy 616d930
Evict oldest corpus with more than x mutations
grandizzy 36a8f11
Add min corpus size config, bump max mutations to default depth run
grandizzy e8fcb4b
Simplify corpus manager and corpus struct, enable prefix / suffix
grandizzy c1a1039
Merge remote-tracking branch 'upstream/master' into tt-test
grandizzy e9ffa00
Fuzz arg from ABI
grandizzy 1d70d17
Corpus max mutations default 5
grandizzy 15c55b2
Save metadata on disk at eviction time
grandizzy 93e2da3
Remove more than 2 branches branch, make sure we always have one
grandizzy e7d39fb
Load gz and json seeds, ignore metadata files
grandizzy 27dc9c7
ABI mutation replaces subset of arguments sometimes
0xalpharush b6bb837
prevent empty range but perform at least 1 round
0xalpharush f2d637e
trim selector when using abi_decode_input
0xalpharush 7f27484
Nit, remove clippy allow
grandizzy cf44636
retain corpus items that are highly likely to produce new finds
0xalpharush d90ad7f
rename corpus_max_mutations to corpus_min_mutations
0xalpharush 383b347
update cli test expectations
0xalpharush a5f92bf
Merge branch 'master' into feat/coverage-guided-fuzzing
grandizzy 08e501a
Stateless fuzz corpus config revert, add invariant time based campaigns
grandizzy d305fff
Changes after review
grandizzy 7e07a35
Remove outdated comment
grandizzy 6c46792
Merge branch 'master' into fuzz-cov
grandizzy 6f981ed
Update crates/evm/evm/src/executors/mod.rs
grandizzy 741eb4e
Changes after review: comment, update merge_edge_coverage, use rng.gen
grandizzy 437c170
Fix docs
grandizzy 1f3cd97
Merge branch 'master' into feat/coverage-guided-fuzzing
grandizzy 0148fd7
Merge branch 'master' into feat/coverage-guided-fuzzing
grandizzy 6211433
Merge branch 'master' into fuzz-cov-merge-prop
grandizzy b81af72
Keep test assert, found faster than without guidance
grandizzy dfb5058
Merge branch 'master' into feat/coverage-guided-fuzzing
grandizzy a5fc10e
Merge branch 'master' into feat/coverage-guided-fuzzing
grandizzy 6803a95
Merge branch 'master' into feat/coverage-guided-fuzzing
grandizzy 5f0b1e6
Fix
grandizzy 1e56ca3
Do not use in memory mutated corpus if coverage guided is disabled.
grandizzy 06172a6
Merge branch 'master' into feat/coverage-guided-fuzzing
grandizzy d6502bd
Merge remote-tracking branch 'upstream/master' into fuzz-merge-re
grandizzy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.