The _mint function uses assembly add() for both _totalSupply and _balances without overflow checks.
While Solidity 0.8+ has built-in overflow protection, assembly blocks bypass this protection entirely. When add(x, y) exceeds type(uint256).max, it wraps around to a small number.
Likelihood:
Requires minting very large amounts (close to type(uint256).max)
Less likely in normal operation but possible for malicious token deployers
More likely when token has 0 decimals or very large initial mint
Impact:
Total supply can wrap to near-zero after large mints
Individual balances can wrap, effectively burning tokens
Economic model completely broken
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.