cancelRegistration()and calling back the predictor contract after receiving their refund. This process drains all the funds in the contract due to a missing check-effect-interaction pattern.forge t --mt test_AttackerCanSteallAllFunds -vvTo generate the traces below [PASS] test_AttackerCanSteallAllFunds() (gas: 2094527) Logs:Attacker balance before cancelling = : 0.000000000000000000ThePredicter balance before cancelling = : 1.240000000000000000Attacker balance after cancelling = : 1.240000000000000000ThePredicter balance after cancelling = : 0.000000000000000000unknown status, it is recommended to change the status of user back to unknown before sending back the funds to the user.Reentrancy of ThePredicter::cancelRegistration allows a maliciour user to drain all funds.
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.