The _burn function is an internal utility intended to reduce an account's token balance and the total supply by a specified value. Ensuring the token's state remains consistent with ERC20 standarts.
The function is missing a check to ensure value does not exceed the account's current balance which allows unchecked subtraction to underflow: if value > balance, the balance wraps around a massive value (2^256 - difference).
Likelihood:
During inheritance in extensible ERC20 contracts where _burn is exposed via public wrappers or proxies.
In batch operations or user-facing burn functions that pass not validated inputs from external sources.
Impact:
Arbitary balance inflation allows attackers to drain liquidity pools or manipulate shares, potentially leading to major losses.
Brakes the core ERC20 invariants, causing failures in integrations.
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.