The functions ContestManager::getContestRemainingRewardsand ContestManager::closeContestdoes not check incoming address of contract whether it is a Pot that is part of its management and execute code from the contract. This allows any code that follows the name to be able to execute.
Likelihood:
Malicious user can freely call ContestManager::getContestRemainingRewardsor ContestManager::closeContestand pass in their own contract to run their own malicious code
Impact:
Malicious code can be exectued by the external contract as long as they provide either function.
Malicious user create a new contract, implementing closePotfunction or getRemainingRewardsfunction
Call ContestManager::getContestRemainingRewardsor ContestManager::closeContest to execute their wanted malicious code
Check using the array, whether the address is one of its pot in the management
Check using the mapping of whether there are still funds to know which is active
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.