Root cause is that assmebly does not have protection for undeflow/overflow meaning when you burn more than balance it underflows and user has a balance of (almost) infinite tokens.
Solidity has a protection for underflow and overflow but assembly not.
Likelihood:
Very high , easily doable, just need to burn some amount that is higher than balance of the account.
Impact:
High , user can get infinite tokens.
This test will fail the assertion assertEq(balance, 0);
Too fix the problem , a check must be introduced to see if there is enough balance for the user to burn.
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.