The graduate() function is marked public and lacks any access control. Without a modifier like onlyPrincipal, any external address can invoke this function. Since it is also upgradeable (via reinitializer(2)), future versions could introduce sensitive logic, making the lack of access control a critical risk.
Any user could potentially trigger graduation logic meant only for the principal, leading to unauthorized state transitions or misuse once the function is fully implemented.
Manual reviews
Restrict access to the graduate() function by adding a proper access control modifier, such as:
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.