RaiseBoxFaucet:burnFaucetTokens function may inappropriately transfer the entire contract balance to the administrator.Normally, the intention of the burnFaucetTokens function is to "burn a specified amount of tokens".
However, the logic semantics of this function are quite confusing: "first transfer the entire balance to the administrator, then burn the specified amount". This does not seem to be a reasonable expectation.
This inappropriate logic will result in whenever the administrator performs a burn operation, regardless of the specified amount, the entire balance of the protocol will be removed.
Moreover, transferring to the administrator effectively violates the expectation that "the administrator cannot withdraw faucet tokens".
Likelihood:
Occurs every time a burn operation is performed.
Impact:
Directly empties the protocol's token balance, meaning "if the protocol wants to continue distributing tokens in the future, it must remint them, which would be redundant".
Add the following in RaiseBoxFaucet.t.sol:
Precisely burn the specified amount of 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.
The contest is complete and the rewards are being distributed.