The function LevelOne::graduateAndUpgrade is owners by onlyPrincipal, who is not a trusted owners , that mean the onlyPrincipal can exploit this function to steal the payPerTeacher!
Trusted owners could intentionally act against the interests of users — e.g., pausing the contract, upgrading it to malicious code, or seizing teachers funds & all the fees...
The owner onlyPrincipal can upgraded the contract & add function to steal all the fees .
Foundry
Use decentralized oracles (e.g., Chainlink, UMA).
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.