The changeFeeAddress() function does not validate that the new address is not address(0).
When the owner accidentally sets feeAddress to zero, all subsequent fee withdrawals will fail or send ETH to the burn address.
Likelihood: Low
Reason 1 // Requires owner mistake
Reason 2 // Accidental zero address input
Impact: High
All accumulated fees sent to burn address
Fees permanently lost
No recovery mechanism
The following test demonstrates that the owner can set the fee address to zero without any validation, and subsequent fee withdrawals will send ETH to the burn address where it becomes permanently unrecoverable. This is a common mistake that can occur when interacting with contracts through scripts or frontends that don't properly validate inputs.
Add zero address validation to prevent accidental misconfiguration. This is a standard security practice that should be applied to all address setters, especially those controlling fund flows. Consider also adding a two-step ownership transfer pattern for additional safety.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.