The contract fails to explicitly validate game types during player joins, relying solely on implicit bet amount checks. This could allow mismatched joins under specific conditions.
Location:
joinGameWithEth()
joinGameWithToken()
Current Implementation Issues:
Token games identified only by game.bet == 0
No positive validation of intended game type
Exploitable Scenario:
Resulting Problems:
Prize distribution may fail unexpectedly
Contract enters undefined state
Off-chain tracking becomes unreliable
Broken game state transitions
Incorrect prize calculations
Possible fund/token lockups
Manual code review
Add Explicit Game Type Tracking:
Implement GameType enum in storage
Set type during game creation
joinGameWithEth function lacks a check to verify the game was created with ETH
joinGameWithEth function lacks a check to verify the game was created with ETH
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.