The withdraw
function in ThePredicter
contract allows sending ETH to an arbitrary address (the caller) without sufficient checks.
In the withdraw
function:
The function sends ETH to msg.sender
without verifying if the caller is still an approved player.
While there are checks for eligibility and reward calculation, a player who was approved but later removed (like for another match) could still withdraw funds.
Manual code review
Add an additional check to ensure the caller is still an approved player:
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.