Description: One of the protocol invariant is that the school session lasts four weeks but the principal can call graduateAndUpgrade function or upgradeToAndCall and upgrade the protocol before reaching four weeks. The pricipal can even upgrade the protocol before session begins.
Vulnerability Details: There is no checks in graduateAndUpgrade if the session lasted four weeks
Impact: Principal can upgrade protocol before four weeks severly breaking the protocol invariant
Tools Used: Manula Review
Proof of Concept: Add this test suit to LevOnelAndGraduateTest.t.sol
Before doing any tests for levelOneProxy.upgradeToAndCall() to work add UUPSUpgradable in LevelTwo and this is a bug for another report
pricipal can end before session end
pricipal can end before session begin
Recommendations: use the sessionEnd variable to check if sessionEnded
`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.