If prize token is ERC777 then one of the unhappy winners can revert a transaction preventing the rest from getting their prizes.
An unhappy winner can revert a transaction after receiving funds:
https://github.com/Cyfrin/2023-08-sparkn/blob/main/src/Distributor.sol#L147
Add to OnlyDistributorTest.t.sol
forge test --match-test testDoSAttack -vvv
[PASS] testDoSAttack() (gas: 845199)
Commenting winners[0] = address(unhappyWinner);
will cause a test to fail because no exception will be emitted.
While an organiser can remove unhappy winners and distribute their shares to other participants it'll probably be both painful and costly if there are a few of them so it's better to avoid it.
Don't whitelist tokens allowing transfer hooks
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.