High
LevelTwo completely lacks the access control modifiers present in LevelOne, leaving all existing and future functionality unprotected. Without these controls, any address could call sensitive administrative functions, leading to unauthorized manipulation of the school system, potential fund theft, and complete compromise of the platform's integrity.
In LevelOne, critical administrative functions are protected by modifier-based access controls:
However, LevelTwo lacks any of these access control mechanisms. While LevelTwo currently has minimal functionality, it inherits all the state variables from LevelOne, including the principal
address and mappings for teachers and students. Without proper access control, once functionality is implemented:
Anyone could call functions meant only for the principal
Anyone could call functions meant only for teachers
Anyone would be able to manage teachers, students, and school funds
The entire role-based permission system would collapse
This is particularly concerning as 60% of the bursary funds are meant to be managed in LevelTwo, according to the protocol's documentation. Without access controls, these funds would be vulnerable to unauthorized manipulation.
Manual code review
Add the same access control modifiers to LevelTwo that exist in LevelOne:
Additionally, ensure all sensitive functions include appropriate access modifiers when implementing them.
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.