Normal behavior: Each user should independently claim 1 Snow token per week during farming.
Issue: A global cooldown timer blocks all users after any claim, enabling permanent Denial-of-Service attacks and monopolizing token distribution.
Likelihood:
Occurs on first claim in a multi-user environment.
Attack automation costs <0.003 ETH.
100% reproducible in all environments.
Impact:
Permanent Denial-of-Service: Users are blocked permanently from claiming rewards, disabling the reward system for everyone.
Centralization of token distribution: One attacker can monopolize the rewards, undermining decentralization.
Economic collapse: User trust is destroyed, participation drops, and the system becomes unsustainable.
User trust erosion: Monopolization leads to declining participation, causing the token’s value to fall and the ecosystem to collapse.
Explanation:
Legitimate user claims at T=0, setting the global timer.
Subsequent users are blocked by the global cooldown.
Attacker resets the cooldown at the expiration point (604801 seconds), monopolizing the rewards.
The original user is blocked permanently, even though they are eligible for a claim.
The attack is repeatable indefinitely and its cost is minimal (<0.003 ETH).
Explanation:
The solution replaces the global timer with per-user tracking, ensuring independent eligibility and decoupling cooldown timers for each user.
Security: Attackers cannot affect others' reward schedules.
Efficiency: Each claim costs about 22,100 gas, and one storage slot is used per user.
Compatibility: Backward-compatible, minimizing integration risks.
This fix resolves a critical 10/10 severity vulnerability, restoring fairness and decentralization. By ensuring each user’s rewards are independent, the protocol becomes resistant to monopolization, maintaining its trustworthiness and economic viability.
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.