isStudent[_student] = false;
Initial State: A student is enrolled and later expelled.
Step 1: The principal expels the student using the expel function.
Step 2: The expelled student calls the enroll function again.
Outcome: The student is re-enrolled without any restrictions.
Implications: Expelled students can bypass the expulsion and rejoin the system, undermining the integrity of the expulsion process.
How they are affected: Expelled students can exploit the system by re-enrolling.
mapping(address => bool) public isExpelled;
function enroll() external notYetInSession {
require(!isExpelled[msg.sender], "Student is expelled");
...
}
function expel(address _student) public onlyPrincipal {
...
isExpelled[_student] = true;
emit Expelled(_student);
}
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.