The randomness needed in ChooosingRam::increaseValuesOfParticipants and ChoosingRam::selectRamIfNotSelected is gotten from method that can be manipulated to ensure some predictability and defeat the purpose of randomness.
The protocol relies on:
To generate a random number. But this randomness is weak because block.timestamp and block.prevrandao are values that can be manipulated by validators/miners.
Since this method is used to determine the selected ram, A malicious user can exploit it and have an advantage.
Manual
Consider using ChainlinkVRF as a way to get randomness in the contract
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.