Link to Affected Code:\
Description:
Here , we can see that its possible to not have a feeCollector.
In the burn function , when the feeCollector is a 0 address , the calculated taxAmount is Neither burned or transfered , it remains in the user's balance.
we can see that regardless of if there is a feeCollector or not, the tax amount is calculated here in the function, so there is an intended taxation:
But if the FeeCollector doesnt exist , the transfer call doesnt happen.
Impact:
Users can bypass the burn tax
Incorrect token supply tracking (total supply does not decrease by the full amount).
If a user wants to burn a cetain amount they have to increase the amount by the taxAmount in order to achieve that
Proof of Concept:
Set feeCollector = address(0).
User calls burn(1000) with burnTaxRate = 50 (0.5%).
taxAmount = 5 is calculated but not burned or transferred.
User’s balance decreases by 995 instead of 1000.
Recommended Mitigation:
If no feeCollector further burn the tax amount
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.