Use of onchain values like block.timestamp, block.prevrandao and msg.sender to generate a random number in RapBattle::_battle for selecting the winner of the battle can be manipulated or predicted by malicious users/validators.
An attacker could predict and manipulate these values to essentially win the battle every single time and game the system.
Validators can predict when and how to participate by knowing the block.timestamp and block.prevrandao in advance and leverage that to win more.
Users can manipulate the msg.sender value to make sure they win.
Slither
Use Chainlink VRF for generating a verifiable random number.
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.