The graduateAndUpgrade() function in the LevelOne contract transfers USDC to all teachers and the principal in a single transaction. If any of these addresses are blocklisted by the USDC contract, the entire transaction will revert.
It prevents all teachers from receiving their wages and blocking the system upgrade process.
A single blocklisted teacher (or principal) address can prevent all wage payments to all teachers and the principal
The system upgrade process will be completely blocked, preventing the school from progressing to the next level
This creates a denial-of-service vulnerability that could permanently freeze the protocol's upgrade mechanism
The school would be unable to complete its session cycle as designed
Implement a pull-payment pattern instead of pushing payments to all teachers in a single transaction
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.