Summary: ETH transfers to players occur before state changes in several functions.
Details: The _finishGame(), _handleTie(), and _cancelGame() functions make ETH transfers before updating critical state, potentially allowing reentrancy attacks.
Impact: A malicious contract receiving ETH could reenter and drain funds.
Recommendation: Follow checks-effects-interactions pattern and use ReentrancyGuard:
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.