There is weak random number generation in MysteryBox::openBox() which allows a malicious actor to essentially choose what reward they want
MysteryBox::openBox() is using factors that can be edited by a validator (especially block.timestamp) which allows for malicious actors to bypass the RNG in order to get the reward they want
Allows attacker to steal from the protocol by getting the most valuable rewards
Add this code to bottom of TestMysteryBox.t.sol
Manual Review
Use a trusted source for random number generation such as ChainLink's VRF
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.