The intended behavior is that authorized players have 90 days to claim their rewards from a pot. After the 90-day claim period has elapsed, the owner/admin should be able to close the pot, take the manager cut from the remaining unclaimed rewards, and distribute the remainder only to players who claimed in time.
The issue is that Pot.claimCut() does not check whether the 90-day claim period has expired. Because of this missing deadline validation, an eligible player can still claim their original reward after the claim window has ended.
Likelihood:
This occurs whenever an eligible player calls claimCut() after the 90-day claim period has elapsed.
The function is public and does not validate block.timestamp against i_deployedAt + 90 days.
Impact:
Late claimants can withdraw rewards that should have remained in the unclaimed reward pool.
This reduces the remaining rewards available for the manager cut and for redistribution to players who claimed within the intended period.
Add the following test to test/TestMyCut.t.sol:
Run the test:
The test passes:
This proves that player1 can still claim their reward after 91 days, even though the intended claim period is only 90 days.
Add a deadline check to claimCut() so claims revert once the 90-day claim period has elapsed.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.