The addTeacher()
function fails to prevent the principal from adding themselves as a teacher, allowing them to:
Illegitimately claim a share of the teachers' 35% bursary allocation
Still receive their normal 5% principal payment
File: levelOne.sol
Functions:
addTeacher()
graduateAndUpgrade()
The access control has two critical flaws:
No check preventing principal == _teacher
Principal receives both:
Normal 5% principal payment
Illegitimate teacher payment (shared from 35% pool)
Test Case:
Test Result:
Direct fund theft from the teacher pool
Violates documented payment structure (5% principal + 35% teachers)
Creates governance trust issues
Foundry (forge test)
Manual analysis of payment flows
Add principal exclusion check in addTeacher()
:
Principal can add themselves as teacher and share in teacher pay upon graduation
Principal can add themselves as teacher and share in teacher pay upon graduation
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.