Normal Behavior: Token transfers should revert if the recipient's balance would overflow, maintaining accounting integrity.
Specific Issue: _transfer checks underflow for the sender (if lt(fromAmount, value)) but does NOT check overflow when adding to recipient's balance (sstore(toSlot, add(toAmount, value))). This allows recipient balance to wrap around.
Likelihood:
High: Any transfer to a recipient with near-max balance triggers this. Attackers can set up whale accounts near type(uint256).max.
Impact:
High: Recipient's balance wraps to a tiny number, effectively destroying their tokens while sender loses theirs legitimately.
Griefing/Theft: Malicious actors can use this to grief large holders or manipulate DeFi positions.
Root Cause: _transfer checks sender underflow but NOT recipient overflow.
Impact: Transfer to a recipient near type(uint256).max wraps their balance to near-zero.
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.