The nonReentrant modifier is missing the mutex lock. This means the state of locked isn't set to true before the execution of the function _ to then be set to false, thus fulfilling the purpose of the modifier.
refund() uses the nonReentrant modifier to prevent someone taking all the funds with a reentrancy, and by failing to do so, all the funds locked within the contract are at risk.
Set the locked modifier to true within the nonReentrant modifier as follows:
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.