Root Cause: The MultiSigWallet contract has a receive() function that allows it to receive ETH. While this is necessary for receiving the match rewards, it lacks access control.
Impact: Potential for accidental or malicious transfer of ETH to the MultiSigWallet that isn't related to match rewards.
Recommendation: Restrict the receive() function to only allow transfers from the LikeRegistry contract.
modifier onlyLikeRegistry() {
require(msg.sender == address(likeRegistry), "Only LikeRegistry can send ETH");
_;
}
receive() external payable onlyLikeRegistry {}
Not the best design, but if you send money accidentally, that's a user mistake. Informational.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.