Normal behavior: the contract should enforce the daily ETH drip cap (dailySepEthCap) by tracking how much ETH has already been dripped today (dailyDrips) and only reset that counter when the global day boundary advances.
Specific issue: code resets dailyDrips in an else branch that can be triggered by a per-claimer condition (or other non-global condition). That single condition zeroes the global dailyDrips counter and allows the faucet to drip more ETH than the intended daily cap when unrelated users claim.
Likelihood: High
Happens when the specific branch condition is met (e.g., a claimant with an old last-claim timestamp), which is plausible in normal operation.
Impact: High
Global ETH distribution accounting is reset incorrectly and attackers or normal users can cause the faucet to distribute more than dailySepEthCap in a day.
This PoC demonstrates -> daily cap distribution by exercising many claims and triggering the problematic reset:
Run the test with:
Only reset dailyDrips on a global day boundary.
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.