Hacker can exploit the randomness in ChoosingRam::increaseValuesOfParticipants
.
The method ChoosingRam::increaseValuesOfParticipants
contains logic for extracting random number which has predictable parameters - block.timestamp
, block.prevrandao
, ramNFT.tokenCounter()
. This means that a hacker can use those parameters to predict a moment which will upgrade the NFT of the agument tokenIdOfChallenger
.
Same could be said fot the method ChoosingRam::selectRamIfNotSelected
but as long as the organiser remains "innocent" that wouldn't be a problem.
A hacker can use the predictable parameters to call ChoosingRam::increaseValuesOfParticipants
in a moment when the function call upgrades the NFT of the agument tokenIdOfChallenger
instead of taking chances as the function is intended to.
Manual Review
Use off chain randomness generator such as Chainlink VRF.
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.