One of our contract's invariants is that students must have 4 review in order to graduate, however, students can still graduate with only 3 reviews.
The graduateAndUpgrade function does not implement a check that a student must have 4 reviews for them to graduate. Therefore, a student with only 3 review can still graduate and exist in the LevelTwo upgraded contract.
Proof of Concept:
Students can graduate with only 3 reviews which breaks the invariant of student having 4 reviews in order for them to qualify.
Manual source code review.
Include a check to validate that all students have 4 reviews before the session ends, else, remove that student from the studentsList and graduate the rest of the students.
All students are graduated when the graduation function is called as the cut-off criteria is not applied.
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.