Solidity 0.8+ overflow checks do NOT apply inside assembly {} blocks.
The _burn() function performs subtraction without checking if the account has sufficient balance, causing underflow to type(uint256).max.
Likelihood:
Occurs when _burn() is called with value exceeding account balance
The Token contract exposes burn() publicly with no balance check
Impact:
Burning 1 token from a 0 balance creates type(uint256).max tokens (~1.16e77)
Complete destruction of token economics
Similar overflow risks exist in _mint() and _transfer() recipient balance
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.