When the owner burns faucet tokens, the contract sends them to the owner address from the contract balance.
Next, the owner can mint the faucet tokens unlimitly by exec burn->mint->burn->... functions, since mintFaucetTokens() only checks the contract balance, not the total number of tokens already minted.
Likelihood:
This will occur when the owner performs the functions burnFaucetTokens()->mintFaucetTokens()->burnFaucetTokens()->... functions
Impact:
The owner can accumulate an infinite number of faucet tokens at his address.
The owner can mint the faucet tokens unlimitly by exec mintFaucetTokens()->burnFaucetTokens()->... functions.
Make a genuine burn function without transferring ownership to the owner by remove the _transfer(address(this), msg.sender, balanceOf(address(this))); row.
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.