The MultiSig
contract doesn't have a withdrawal mechanism in case there are funds are stuck in the contract.
One of the owners of the MultiSig
contract can be another contract, which might not implement logic which can invoke the approveTransaction
function, or the contract might get selfdestructed. The create -> approve -> execute transaction flow is the only way to get funds out of the contract. Not being able to call approveTransaction
would break this chain and result in the funds being stuck in the contract.
High impact - funds would be stuck in the contract. Medium likelihood - the owner could be another contract, which might not implement the required logic.
Manual review.
Implement a mechanism, by which each user could partially or fully retrieve their proportion of the funds in the contract. Such mechanism could be timer-based.
Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelihood 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.