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.
missing checks for overflow and underflow.
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.