The system allows a contract upgrade (via graduateAndUpgrade
) even if students have not received all 4 reviews (one for each week of a session). This contradicts expected behavior and can lead to incomplete assessments and unfair bursary allocations.
Each student is expected to receive 4 weekly reviews during the session. However, there is:
No validation in graduateAndUpgrade()
to check whether each student has received 4 reviews.
An incomplete implementation of giveReview()
, where reviewCount[_student]
is never incremented, making it impossible to verify the number of reviews each student has received.
This enables the principal to prematurely upgrade the system even if students haven't been fairly assessed.
reviewCount[_student]
is never incremented in giveReview
function therefore we can't track number of reviews per student
There is no checks in graduateAndUpgrade
on studentReviews amount
Invariant mentioned in the DOCS will break
Increment reviewCount[_student]
inside giveReview
Add check mechanims on students reviews count in graduateAndUpgrade
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.