The function burnFaucetTokens(uint256 amountToBurn) transfers all faucet tokens from the contract to the owner before performing a burn.
However, the burn only affects amountToBurn, not the full transferred balance — meaning the contract sends all its tokens to the owner, and only a small portion is actually burned.
Likelihood:
*The developer intended to ensure that the owner has a balance before calling _burn.
However, this logic is unnecessary because _burn can safely burn tokens directly from the contract’s own balance.
Impact:
*The entire faucet token balance is transferred to the owner each time burnFaucetTokens is called.
The faucet becomes empty even if only a small portion of tokens was supposed to be burned.
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.