With withdrawFunds, the owner can withdraw all ETH from the MysteryBox contract. However, if users have pending rewards from opening boxes and have not yet called claimAllRewards or claimSingleReward, and the owner calls on withdrawFunds, then those users will not be able to be paid out.
Users can miss out on their earned rewards; owner can effectively rugpull rewards from users, so long as they withdraw before the users can claim.
It's not very fair to users to allow for a complete withdrawl of funds when there are still rewards left to be paid out, one solution could be to implement a claimsPeriod where users are encouraged to get their rewards but where withdraw is temporarily invalid.
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.