Resetting dailyDrips inside the reuse path zeroes the ETH cap whenever a previous claimer calls again, nullifying the intended daily throttle.
During normal operation the faucet should accumulate dailyDrips across all claimers until a new UTC day starts, ensuring the Sepolia ETH budget is enforced.
Because the else branch (executed for callers who already claimed ETH) unconditionally sets dailyDrips = 0, any repeat caller restarts the daily counter and lets subsequent claims exceed the configured cap.
Likelihood:
The reset fires on every legitimate repeat visitor who returns for a token-only claim after already receiving ETH.
Attackers can script alternating addresses that toggle the branch to keep the counter at zero throughout the day.
Impact:
The faucet spends more ETH than the owner allocated in dailySepEthCap, potentially exhausting the treasury.
Accounting metrics relying on dailyDrips become meaningless, making it impossible to detect anomalous spend patterns.
The PoC calls the faucet twice from the same address to show the dailyDrips counter resetting to zero for repeat callers.
Implementing the change removes the unconditional reset and relies on the day-rolling logic instead, keeping the ETH cap intact.
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.