A malicious or unresponsive player can prevent game resolution by never submitting or revealing their move. There is no mechanism to time them out and recover locked funds.
In the revealMove
function, there is no enforcement of revealTimeout
, even though the contract may track lastAction
. This creates an indefinite waiting period.
Locked game state and player funds.
Enables griefing attacks with no resolution path.
Manual Review
Test-driven simulation with time skipping (Hardhat/Foundry)
Add timeout enforcement logic and enable the honest player to claim a win:
timeoutReveal function incorrectly allows execution and game cancellation even when only one player has committed
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.