The faucet should always dispense a strictly positive amount of tokens and ETH per claim; users should never be able to trigger a claim that emits Claimed(user, 0) or SepEthDripped(user, 0).
The owner can accidentally or maliciously set faucetDrip or sepEthAmountToDrip to zero (or sub-wei values).
A user can still call claimFaucetTokens(), pay gas, emit events with amount = 0, and increment dailyClaimCount/totalClaimed, wasting storage and polluting the event log.
At scale this becomes a zero-cost DoS: bots can fill the daily quota with empty claims, denying real users both tokens and ETH for the rest of the day.
Likelihood:
Reason 1: Owner function adjustFaucetDrip/sepEth has no require(newAmount > 0), so mis-configuration or fat-finger is one tx away.
Reason 2: Once faucetDrip == 0, any bot can cheaply loop 100×, fill dailyClaimCount == dailyClaimLimit for ~2 M gas, blocking legitimate users for 24 h.
Impact:
Impact 1: Permanent DoS for the calendar day—real users revert on DailyClaimLimitReached.
Impact 2: Storage bloat (dailyClaimCount, lastClaimTime, totalClaimed maps) and event-log spam force archive-node growth and degrade UX.
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.