overwriting user balances
overwriting allowances
breaking total supply
unexpected resets or corruption of token accounting
This can permanently destroy token state.
ERC-20 stores balances as:
using keccak256(address . slot) for mapping access.
Token-0x uses manual Yul to compute mapping slots, but the implementation is missing shl(5, ...) or proper layout alignment. As a result, the mapping index overlaps with other storage variables.
This breaks the invariant that mappings must be accessed via:
Likelihood:
Triggered whenever balance/allowance is updated.
Any transfer using this broken pointer corrupts another user's balance.
Impact:
Balance overwrites allow minting, burning, or balance resets.
Approvals may corrupt unrelated storage (e.g., totalSupply).
After the call:
some random account may lose funds
the attacker may gain funds
totalSupply or allowances may become corrupted
Also ensure all mapping reads/writes use the same hashing pattern.
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.