In 'RapBattle__goOnStageOrBattle' function, all the users without a 'oneShot' NFT can join the battle and maybe win tokens, because they may interact with the function passing a non existent 'tokenId'.
Run this Foundry test:
Also people without an NFT can win the battle and get tokens "for free"
Manual Review, Foundry
Add line of code that checks if the 'msg.sender' is the right owner of the 'tokenId' in the '_battle' function:
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.