Description: In function graduateAndUpgrade there are no checks if the session has ended yet, and if the sessionEnd variable has been reached. This means that the protocol can be upgraded even if the time passed since session started is less than 4 weeks, breaking 2 invariants of the protocol that are presented in the documentation.
Impact: Two of the invariants of the protocol are being broken because of this root cause.
Proof of Concept: In this test function there is no revert in the graduateAndUpgrade even if no time has passed since starting and ending the school session.
Recommended Mitigation: Verify in the graduateAndUpgrade if the sessionEnd time variable has been reached.
`graduateAndUpgrade()` can be called successfully even when the school session has not ended
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.