ETH and winning token deposited by overwritten players becomes permanently locked in the contract with no withdrawal mechanism
Root cause:
Initial State:
Contract deployed
No existing mechanism to recover locked ETH and winning token deposited
Step 1:
Player A creates game
Multiple players get overwritten as Player B because others keep joining the game before it enters commit phase
Their ETH deposits accumulate in contract
Step 2:
Game completes normally
Winner receives prize
Admin withdraws fees
Outcome:
Overwritten players' ETH and winning token remains locked
No mechanism to recover funds
Contract balance permanently increased
Permanent loss of user funds
Contract becomes ETH and winning token sink
No emergency withdrawal mechanism
Accumulated ETH cannot be recovered
Manual Review
Add emergency withdrawal function for admin
Implement withdrawal mechanism for overwritten players:
ETH sent directly to the contract via the receive function or after a canceled game becomes permanently locked
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.