The expel()
function allows the principal to remove students even after the session ends, potentially preventing qualified students (those meeting cutOffScore
) from graduating despite fulfilling all requirements.
File: levelOne.sol
Function: expel(address _student)
Incorrect Session Check: Current check if (inSession == false)
only prevents expulsions BEFORE session starts, not AFTER
No Graduation Protection: Students can be removed after completing all requirements but before upgrade
Trust Breakdown: Principal has unilateral power to block student progression
Test Case:
Test Result:
High Severity because:
Allows principal to censor specific students arbitrarily
Undermines trust in the decentralized education system
Foundry (forge test)
Manual analysis of state transitions
Implement Dual Session Check:
Principal can unfairly expel a student before upgrade
Principal can unfairly expel a student before upgrade
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.