The _burn function in ERC20Internals.sol uses assembly blocks to efficiently update token balances and total supply through direct storage operations.
Inside the assembly block, the sub instruction is used without explicit validation, allowing arithmetic underflow when burning more tokens than available. In Solidity 0.8+, arithmetic operations are checked by default, but this safety feature is disabled inside assembly blocks, creating a critical vulnerability.
Likelihood:
Any user with access to burn functionality (public or through exposed internal functions) can trigger this vulnerability
The underflow condition is deterministic and guaranteed when value > balance
Impact:
Infinite token creation - Attackers can receive approximately 2^256 tokens by burning more than their balance
Total supply manipulation - The token economics can be completely destroyed, rendering the token worthless
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.