The selectRamIfNotSelected function in the Dussehra protocol uses a predictable randomness method, allowing the organiser to manipulate the selection of Ram. This vulnerability can lead to biased outcomes, unauthorized withdrawals, and significant financial losses, undermining the protocol's integrity and fairness.
The selectRamIfNotSelected function allows the organizer to select a Ram using a random selection method. However, the randomness can be bypassed or manipulated by the organiser, leading to the selection of a predetermined user.
The function uses the current block timestamp and block.prevrandao to generate a random number, which can be predicted and manipulated by the organizer to ensure a specific user is selected as Ram.
Manipulation by Organiser: The organiser can control the selection process, leading to unfair and biased outcomes.
Financial Loss: If the organiser selects a specific user as Ram, they can collude to withdraw funds unfairly, leading to significant financial losses for other participants.
Manual review
Use Secure Randomness: Implement a more secure randomness method, such as Chainlink VRF, to ensure the selection process is fair and tamper-proof.
The organizer is trusted, but the function `ChoosingRam::selectRamIfNotSelected` uses a way to generate a random number that is not completely random.
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.