Fuzzing Suite By Guardian #32
Open
GuardianAudits wants to merge 23 commits into
Open
Conversation
db20bae to
bafae41
Compare
921e1b7 to
eebeaa3
Compare
4f683bf to
b4d1951
Compare
LCOV of commit
|
15b687d to
964f359
Compare
a31d36a to
e33dcf9
Compare
…ty support (#77) * feat(fuzzing): update fuzzing suite with JMI extension and SwapFacility support - Add JMIExtension and related components - Add Extension→Extension swap support with second JMI instance - Add M backing checks to prevent InsufficientMBacking errors - Add preconditions for SwapFacility swap paths - Add wrapInitialAssets for proper test setup - Update FuzzStorageVariables and handlers * fix(tests): fix compilation issues --------- Co-authored-by: marjon-call <markjonathas@gmail.com> Co-authored-by: Pierrick Turelier <pierrick@turelier.com>
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
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.
Overview
Guardian Audits conducted an in-depth security review of M-extensions by M^0 labs from June 23th to June 27rd, 2025. The comprehensive evaluation included developing a specialized fuzzing suite to uncover complex logical errors across various protocol states. This suite was created during the review period and successfully delivered upon the audit's completion.
Contents
This fuzzing suite was developed for M^0 and updated with remediations at July 20th. The suite primarily targets core functionality found in
MEarnerManager.solandMYieldFee.sol,MYieldToOne.solandSwapFacility.sol.This suite implements a minimalistic, instant-on approach to fuzzing. It employs Echidna's stateful fuzzing mechanism to simulate the project lifecycle and and minimizes mocking with M0 token, MinterGateway, wrapped M token and Uniswap V3 local deployments.
All tested properties can be found below in this README.
Setup
npm iforge installUsage
forge clean && forge build test/fuzzing/Fuzz.sol && echidna . --contract Fuzz --config echidna.yamlforge test --mt test_coverage_mintScope
Repo: https://github.com/GuardianOrg/m-extensions-m0-m-extensions-fuzz
Branch:
mainCommit:
ba39e694aa7bfffd5138a0ead9f9cb7438c7929aHere's the fuzzing directory structure with its contents:
Protocol Invariants Status Table
Fuzzing Enginner: @forkforkdog (Guardian Audits)