The amount send from user to contract or owner for burning is balance(address(this)) that can leads to complete loss of fund for the user.
In the burnFaucetTokens function, the contract transfers the entire faucet balance (balanceOf(address(this))) to the owner instead of transferring only the amountToBurn.
As a result, calling this function drains all tokens from the contract balance to the owner, instead of transferring just the specified amount intended for burning.
This logic flaw can lead to a complete loss of user funds stored in the faucet contract.
Reason 1. When owner call try to burn a specefic amount of token, and it exceution lead to complete loss of fund of the user.
Reason 2 The user might wanted to burn specific amount of money but owner took it's all money.
Complete lose of fund of user.
Suppose the faucet contract holds 10,000 tokens.
The owner calls burnFaucetTokens(1000).
Instead of transferring 1,000 tokens, the function transfers all 10,000 tokens to the owner.
_burn(msg.sender, 1000) then burns only 1,000 from the owner’s balance — leaving the remaining 9,000 tokens permanently with the owner.
Replace the incorrect transfer call with the correct one:
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.