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.
How it happened
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.
Protocol details
Evidence
Proof of concept
1 availableSources
- report Twitter/X Alert twitter.com
- report Twitter/X Alert twitter.com
- report @peckshield incident report twitter.com
- report Unizen Reimbursement Announcement twitter.com
- transaction Unizen Exploit Transaction etherscan.io
- analysis Website reference cointelegraph.com
- analysis DeFiLlama defillama.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
Understand the attack patterns
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.