The LevelOne
contract allows the principal to end a session and perform graduation without ensuring that each student has received the minimum number of required reviews. This breaks the protocol invariant and severely disrupts it's operation.
According to the contract's design, students are expected to receive multiple reviews from teachers (up to 4 reviews total as checked in the giveReview
function). However, there are no checks in the endSession
or graduateAndUpgrade
functions to verify that students have received a minimum number of reviews before concluding the session:
This means the principal can end a session and graduate students even if some students have received 0 reviews, making the review system effectively optional despite its apparent importance in the educational process.
Students may not receive proper evaluation before graduation
Students who paid school fees are denied full evaluation services
Educational outcomes cannot be properly measured without adequate reviews
Manual code review
Business logic analysis
Implement a minimum review requirement before allowing graduation:
`graduateAndUpgrade()` can be called successfully even when the school session has not ended
`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.