A vulnerability was identified that allows any random user to make predictions without registering as a Player. This behavior bypasses the intended access control mechanisms
The makePrediction
function in the ThePredicter
contract does not verify if the user has registered and paid the entrance fee before allowing them to make a prediction. As a result, users can exploit this vulnerability to participate in the prediction process without contributing to the prize fund, thereby receiving an unfair advantage over honest players who follow the correct registration process.
forge t --mc ThePredicterPOCTest -vvvvv
to see the transaction traces.Malicious users can repeatedly exploit this vulnerability to make predictions without financial commitment, potentially manipulating the betting outcomes and disrupting the intended operation of the protocol.
Manual Review / Foundry
Implement a check in the makePrediction
function to verify if the caller has registered and paid the entrance fee before processing their prediction.
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.