The burnFaucetTokens function is designed to accept an amountToBurn parameter, allowing the owner to burn a specific amount of faucet tokens.
The function incorrectly transfers the entire contract balance (balanceOf(address(this))) to the owner instead of the specified amountToBurn amount, causing unintended behavior when partial burns are attempted.
Likelihood:
This occurs every time the owner calls burnFaucetTokens with any amount
The bug is guaranteed to manifest when trying to burn less than the full balance
Testing may not catch this if only full-balance burns are tested
Impact:
Owner receives more tokens than intended when burning
Partial burns are impossible - always transfers full balance
Contract accounting becomes incorrect
Breaks the intended burn mechanism
If contract holds 10,000 tokens and owner wants to burn 1,000, they receive all 10,000 tokens
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.