The createGameWithToken()
and joinGameWithToken()
functions lack proper validation of ERC20 token transfer successes, enabling game state modifications without guaranteed token deposits. This violates the fundamental "checks-effects-interactions" pattern and compromises game integrity.
Location:
createGameWithToken()
joinGameWithToken()
Vulnerable code:
Technical Analysis
Both functions use standard ERC20 transferFrom()
without:
Return value verification
Allowance validation
Reentrancy protection
Players can participate without token staking
Protocol awards prizes without receiving tokens
Manual code review
ERC20 implementation typically reverts on transfer failures
ERC20 implementation typically reverts on transfer failures
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.