The variables related to block can be checked if they are the same block, so the winnerIndex is predictable.
The formula for the winnerIndex is as follows
uint256 winnerIndex = uint256(keccak256(abi.encodePacked(msg.sender, block.timestamp, block.difficulty))) % players.length;
Since block.timestamp and block.difficulty can be referenced for the same block, they are all predictable variables. In other words, players can predict the winner in advance, so they can add new players according to their winnerIndex (their subaddresses) and so on.
You can commit injustices that make you a winner.
Manual
Use an oracle to apply a random index to the winner
Root cause: bad RNG Impact: manipulate winner
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.