When likes are matched there is a creation of MultiSigWallet
contract thus all the previous payments of both users are transferred to the multisig. The issue could appear if one of the following scenarios:
One of the two owners is a smart contract with missing built-in logic to request the methods of the MultiSigWallet
contract.
Irresponsible owner losing his private key.
Both owners never reaching consensus on how to spend the ETH inside the multisig.
Possible indirect funds lock for one of owners inside the MultiSigWallet
contract.
Add isContract
check inside method matchRewards
in contract LikeRegistry
. There is no danger contracts to bypass this check by executing logic from the their constructors, because of the nature of the matchRewards
method - you have to be liked first in order to create MultiSigWallet
contract inside your like likeUser
transaction.
The MultiSigWallet
contract to keep record of both owners payments and create emergency withdraw method in the case that one of the owner is locked. By executing the emergency withdraw the owner should be able to withdraw only his funds. There has to be additional modifier that blocks the execution of methods submitTransaction
, approveTransaction
& executeTransaction
if one of two owners has already initiated the emergency withdraw of his funds.
Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelyhood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.
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.