Tokens may be blocked forever if a wrong arbiter address is settled in the constructor.
The root of the vulnerability lies in the assignment of the arbiter address during contract deployment. An incorrect address can lead to a scenario where the onlyArbiter
modifier, present in the resolveDispute()
function, prevents the tokens from being unlocked. Consequently, the tokens associated with these contract will be rendered inaccessible indefinitely.
Tokens will be locked forever in the contract.
Manual review
To mitigate this vulnerability, you colud implement a two-step verification process, similar to the Ownable2Step
mechanism. Before transitioning the State
to Disputed upon calling initiateDispute()
, the system should perform an additional verification step to ensure that the arbiter address is correct.
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.