Unizen Hack
What happened
A vulnerable upgraded Unizen trade-aggregator contract let an attacker drain tokens from users who had previously approved the aggregator. The loss was reported at about $2.1 million, initially in USDT and later converted to DAI.
The upgraded aggregator permitted arbitrary external calls in its swap flow without binding the token source to msg.sender or enforcing trusted route targets. Existing ERC-20 approvals therefore gave the aggregator authority that attacker-supplied calldata could redirect from victims.
Case & protocol details
Attack Timeline
The Ethereum aggregator proxy accepted user-supplied route targets and calldata in its swap path and executed them as the aggregator. It did not verify that the transferFrom source belonged to the caller or restrict calls to trusted routers. Because victims had approved the aggregator, the attacker supplied a transferFrom call for victim allowances and then forwarded the tokens to an attacker-controlled recipient.
The issue was discovered on March 8 and the approved aggregator remained a risk until users revoked approvals. This was a confused-deputy arbitrary-call flaw, not a flash-loan or oracle exploit.
Evidence & learning
Proof of concept
1 availableSources and on-chain records
- report Report twitter.com
- transaction Transaction etherscan.io
- analysis Twitter/X Alert twitter.com
- analysis Twitter/X Alert twitter.com
- analysis Website reference cointelegraph.com
- analysis Unizen Trade Aggregator Documentation docs.unizen.io
- analysis 2024 Unizen Hack revoke.cash
- analysis Unizen Exploit: Arbitrary Call in the Unizen Aggregator crypto.training
- analysis Unizen Reimbursement Announcement twitter.com
Practice this exploit pattern safely
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.