The claimFaucetTokens function uses a low-level call for ETH transfers without a gas limit. A malicious claimant contract with a complex receive or fallback function could consume excessive gas, causing the transaction to fail and potentially blocking other claims.
Likelihood:
Occurs when a claimant is a contract with a gas-intensive receive or fallback function.
Occurs during first-time claims, as ETH is only sent to new claimers.
Impact:
Transaction failures prevent legitimate claims, disrupting faucet functionality.
Could temporarily block ETH drips for other users until the malicious contract is avoided.
Explanation: The PoC shows how a malicious claimant contract with a gas-intensive receive function causes the claimFaucetTokens call to fail. The contract consumes all available gas, leading to a revert and preventing the claim from succeeding.
Explanation: We add a gas limit (e.g., 2300, sufficient for simple ETH transfers) to the call in claimFaucetTokens. This prevents a malicious contract from consuming excessive gas, ensuring the transaction either succeeds or fails predictably without affecting other users.
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.