Pot.sol::closePot() assumes the caller of the function is the contest manager. If the contract is ever hacked in some way granting owner access to the attacker, the msg.sender will be able to obtain the manager cut by calling Pot.sol::closePot()
If the contract is ever hacked in some way granting owner access to the attacker, the msg.sender will be able to obtain the manager cut by calling Pot.sol::closePot()
Manual Review
Consider creating a distinct role for the manager using OwnableRoles (who may not always be the owner). Create a mechanism to assign or change managers (onlyManagerRole) and change Pot.sol::Line 7 to safeTransfer (instead of transfer) to the manager address rather than msg.sender. This required changing ContestManager.sol::createContest to assign the manager's role to an address. This ensures that if the owner is hacked in some way, the manager still retains the ability to call the closePot and receive the manager's cut.
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.