claimCut() does not enforce the 90-day claim window. Players can claim after the deadline — reducing or eliminating the remainingRewards that should be distributed between the owner and on-time claimants via closePot().
| Field | Value |
|---|---|
| Severity | Medium |
| Likelihood | Medium |
The protocol documentation states that claimants have 90 days to claim rewards. After that, the manager takes 10% of unclaimed funds and the rest is distributed to on-time claimants. However, claimCut() contains no timestamp check, so players can claim at any time before the owner calls closePot(), bypassing the deadline entirely.
Likelihood: Affects every deployed Pot. Any player who missed the deadline can exploit this as long as the owner has not yet called closePot(). No complex setup required.
Impact: Late claims reduce remainingRewards before closePot() runs. In the worst case, if all players claim late, remainingRewards reaches 0 and the owner receives nothing (managerCut = 0) and on-time claimants receive no bonus distribution. Concrete PoC example: 4 players, 3 claim on time. remainingRewards = 1e18. If player4 claims late, remainingRewards drops to 0 — owner loses 1e17 WETH (10% cut) and on-time claimants lose their 3e17 WETH bonus share.
Setup: 4 players, 1 WETH each. 3 claim before the deadline. Player2 claims after 90 days. Owner closes the pot — receives nothing.
Add a custom error and a timestamp check at the start of claimCut().
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.