In changeOwner function, it only do one thing : change the owner, and the owner has all the setting power of setBoxPrice, addReward and withdrawFunds. So the owner has power to drain the protocol.
user2 call changeOwner to himself.
now the owner is user2!!!
Add following code to test file:
Malicious user can change the owner to themselves, then maybe set the very expecsive value rewards, and even more they can take away all money of protocol by calling withdrawFunds
manual review
Add access control!
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.