Lack of reentrancy protection in graduateAndUpgrade risks state manipulation or fund loss.
The graduateAndUpgrade function in LevelOne.sol uses usdc.safeTransfer to send funds to Teachers and the Principal without a reentrancy guard. A malicious contract as a Teacher could re-enter the function during transfer, potentially manipulating state or draining funds if logic is added later.
Could lead to financial loss or unintended state changes.
Manual code review and reentrancy analysis.
Import ReentrancyGuardUpgradeable and add nonReentrant modifier to graduateAndUpgrade, initializing it in initialize.
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.