PuppyRaffle.refund() can be reentered with a smart contract as the player.
the attack is due to the updating the storage after external call, where it lacks the Checks effects Interaction pattern.
Severity : high
Likelihood : high
Manual verification
reentrancy in refund() function
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.