The _burn function is expected to decrease a user's balance and the total supply by a specified amount, reverting if the user has insufficient funds.
The function uses Unchecked Yul sub instructions without any prior comparison check; this causes the calculation to wrap around to type(uint256).max when trying to subtract a value larger than the balance.
Likelihood:
A user calls the public burn function with an amount greater than their current balance.
Impact:
The user gains a practically infinite balance (type(uint256).max), allowing them to dump tokens or dominate governance.
Token total supply becomes corrupted, destroying trust in the token.
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.