The _transfer function of the contract transfers the entire balance of the contract balanceOf(address(this)) to the owner instead of the amountToBurn, and then burns the amountToBurn from the owner.
Likelihood:
Anytime the owner performs a burn of any amount specified in the burnFaucetTokens(uint256 amountToBurn) call, it automatically drains all tokens available for distribution to the owner's account.
Impact:
Intended functionality for normal administrative routine functions drains the faucet tokens, breaks the main protocol's functionality, and causes a denial of service for users.
Add the following code snippet to the RaiseBoxFaucet.t.sol test file.
Use the amountToBurn instead of balanceOf(address(this)) in the _transfer function.
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.