The nonReentrant modifier is incorrectly implemented, missing the critical locked = true statement.
The modifier checks if the contract is locked but never sets it to locked state before executing the function.
High - This allows reentrancy attacks on protected functions like refund(), potentially draining the contract's funds.
Manual review
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.