The matchRewards function deploys a new MultiSigWallet contract and then sends ETH to it using a low-level call. The MultiSigWallet constructor could be malicious if an attacker can influence the deployment (through CREATE2 or other means), or more importantly, if the receiving contract's receive function performs a callback. While userBalances are set to 0 before the external call (following CEI pattern), the totalFees update happens before the external call, allowing potential reentrancy to manipulate fee accounting or trigger multiple matches.
Impact:
An attacker could potentially manipulate the contract state during the external call, leading to incorrect fee accounting or triggering additional matches. In worst case, if the contract deployment can be influenced, funds could be redirected to an attacker-controlled address.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.