Description:
burnFaucetTokens first transfers the entire faucet balance to the owner, then burns only amountToBurn from the owner’s balance. This grants the owner all remaining faucet tokens minus the burned amount. Even if intentional, this is highly surprising and centralizes control over the faucet supply.
Impact:
Owner can drain nearly the full faucet token reserve to their wallet at any time.
Breaks user expectations of a neutral faucet and can destabilize any testing ecosystem that assumes the faucet holds the supply.
Proof of Concept:
Mitigation:
Burn directly from the contract without transferring:
Optionally, add a governance timelock and emit clear events to make supply changes auditable.
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.
The contest is complete and the rewards are being distributed.