**Severity:** HIGH
**Location:** Line 132
**Description:**
The `burnFaucetTokens` function has a critical flaw - it transfers the **entire contract balance** to the owner, not just the `amountToBurn` specified in the parameter.
```solidity
function burnFaucetTokens(uint256 amountToBurn) public onlyOwner {
require(amountToBurn <= balanceOf(address(this)), "Faucet Token Balance: Insufficient");
// BUG: This transfers ALL tokens, not just amountToBurn
_transfer(address(this), msg.sender, balanceOf(address(this)));
_burn(msg.sender, amountToBurn);
}
```
**Impact:**
- If owner wants to burn 1000 tokens from a balance of 1,000,000, all 1,000,000 tokens get transferred to owner
- Only 1000 tokens get burned, leaving owner with 999,000 tokens
- Breaks the intended functionality and allows owner to drain the faucet
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.