-
Notifications
You must be signed in to change notification settings - Fork 581
feat(avm): avm fuzzer bytecode mutation #19378
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
IlyasRidhuan
merged 1 commit into
merge-train/avm
from
ir/01-06-feat_avm_avm_fuzzer_bytecode_mutation
Jan 14, 2026
Merged
feat(avm): avm fuzzer bytecode mutation #19378
IlyasRidhuan
merged 1 commit into
merge-train/avm
from
ir/01-06-feat_avm_avm_fuzzer_bytecode_mutation
Jan 14, 2026
Conversation
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 was referenced Jan 7, 2026
Contributor
Author
93eb5a8 to
aa96990
Compare
52b4d03 to
fdd48ce
Compare
3700f20 to
3d86939
Compare
fdd48ce to
1b2d92c
Compare
3d86939 to
d39d11f
Compare
1b2d92c to
e6d52ef
Compare
d39d11f to
4168739
Compare
e6d52ef to
84fa05f
Compare
4168739 to
6f984cd
Compare
84fa05f to
1a64875
Compare
6f984cd to
fbabbed
Compare
5481b98 to
dd4e396
Compare
fbabbed to
ac33049
Compare
dd4e396 to
d5a76af
Compare
ac33049 to
3faa9e2
Compare
d5a76af to
a9f59ee
Compare
3faa9e2 to
35ef4be
Compare
This was referenced Jan 12, 2026
a9f59ee to
5962f63
Compare
35ef4be to
a4be5dc
Compare
IlyasRidhuan
commented
Jan 12, 2026
| std::function<void(T&, std::mt19937_64&)> mutate_element_function, | ||
| std::function<T(std::mt19937_64&)> generate_random_element_function, | ||
| const std::function<void(T&, std::mt19937_64&)>& mutate_element_function, | ||
| const std::function<T(std::mt19937_64&)>& generate_random_element_function, |
Contributor
Author
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
these were missing from an earlier pr
Collaborator
Flakey Tests🤖 says: This CI run detected 3 tests that failed, but were tolerated due to a .test_patterns.yml entry. |
sirasistant
approved these changes
Jan 13, 2026
Contributor
sirasistant
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
Base automatically changed from
ir/01-05-feat_avm_gas_mutations
to
merge-train/avm
January 13, 2026 09:26
5962f63 to
58ce0a2
Compare
Merged
github-merge-queue bot
pushed a commit
that referenced
this pull request
Jan 14, 2026
BEGIN_COMMIT_OVERRIDE fix(avm): Fix relative addressing in fuzzer (#19550) feat(avm): avm fuzzer bytecode mutation (#19378) chore(avm): there is automatic conversion from uint128_t to FF chore(avm): ECC pre-audit - normalise infinity points (#19462) feat(bb-pilcom): single-component graph check (#19578) feat(avm): contract class mutation (#19498) chore: support uint128_t in uint256_t construction (#19581) fix!: remove unused column in update_check.pil (#19557) fix(avm)!: pre-audit review of context.pil (#19549) fix(avm): Relax fuzzer memory manager asserts (#19591) fix!: sha256.pil missing input propagation constraints (#19590) END_COMMIT_OVERRIDE
This was referenced Jan 15, 2026
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

Introduces bytecode mutation using the standard
LLVMFuzzerMutate. We allow the mutated bytecode to expand up to 2x the original size.The mutation itself then utilises the contract upgrade path, this way we do not need to modify other classes or instances that may be used by other enqueued calls.
This does require the addition of public data writes as part of the setup to the fuzzer state (that also needs to happen in TS)