The makePrediction
function in the ThePredicter contract lacks proper access control. It allows any address to submit predictions, whereas only approved players should have this ability.
The vulnerability arises because:
The function is public and lacks any checks to verify if the caller is an approved player.
Anyone can call this function and make predictions, as long as they pay the correct prediction fee.
Unfair Advantage: Malicious actors could create multiple addresses to submit numerous predictions, increasing their chances of winning unfairly.
Financial Risk: The contract could accumulate fees from unapproved players, potentially leading to issues with reward distribution.
Manual Code Review
Implement a check to ensure only approved players can make predictions:
makePrediction has no access controls and any unapproved user can make predictions causing an incorrect calculation and distribution of rewards.
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.