If an ERC777 token will be added as a supported asset and someone launched a contest with that token as the prize, a single malicious winner can create a DOS attack and disrupt the entire prize distribution process by controlling the execution flow.
With ERC777 tokens the user (winner) can get the control flow before sending token and after receiving tokens, using ERC77 hooks. This creates attack vectors that require extra caution.
For example, a malicious winner using this hook (callback) can decide to revert the transaction or waste all the gas that was left, effectively preventing the distribution process from continuing and preventing from all the winners from receiving their rewards.
Deploy this malicious smart contract and pass it's as one of the winners of a contest, and the whole distribution process will fail:
In certain contests, one malicious winner can prevent all other winners from receiving their rewards.
Manual Review
In the ProxyFactory.sol
constructor use EIP165 to ensure that no ERC777 tokens exist within the _whitelistedTokens
array
Implement a system where winners actively withdraw their rewards, shifting from the current approach of organizer reward distribution (requires big refactoring).
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.