ChainSwap Hack
What happened
The attacker's wallet:
For cross-chain transfers, each token has its own proxy contract, with the implementation pointing to the Factory contract. The hacker used the Factory contract's receive() method. The attacker was required to pay a fee of 0.005 ETH in _chargeFee. There are no real authentication checks, and just one signature is necessary. To get around this, the attacker simply signed signatures with new addresses each time. In the _receive() function, the volume argument is subsequently sent to the attacker's address.
Protocol details
Evidence
- report Report chain-swap.medium.com
- code Code reference github.com
- analysis DeFiLlama defillama.com
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.