Description: In LevelOne::giveReview, 'reviewCount[_student]' is checked but never incremented. Teachers can issue unlimited "bad" reviews. Every time '!review', 'studentScore' drops by 10, and can underflow below zero-causing a revert in Solidity 0.8+ and permanent lock.
Impact: A teacher can repeatedly call giveReview(student, false) (respecting the 1-week interval) until 'studentScore' underflows, blocking further reviews or graduation and locking that student in the system.
Proof of Concept: Include the following test in the LevelOneAndGraduateTest.t.sol file:
Recommended Mitigation:
`reviewCount` for students is not updated after each review session
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.