The contract has functionality to change owner using MysteryBox::changeOwnerfunction. However, this function don't have any only owner protection to allow set new onwer only by the actual owner.
User can became the owner of the contract call MysteryBox::changeOwner function. After that, user is the owner and is allowed to withdraw all the money from the contract using MysteryBox::withdrawFunds function.
All funds deposited in the contract might be lost.
Manual review
Use require statement in the "MysteryBox::changeOwner" function like in the others function in the contract.
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.