Pickle Finance Hack
What happened
An attacker exploited Pickle Finance's ControllerV4 by deploying malicious smart contracts, leading to a loss of 19M DAI.
The attacker deployed two smart contracts with malicious logic, which were used to retrieve the amount available to withdraw from StrategyCmpdDaiV2. The ControllerV4.swapExactJarForJar() function was invoked, which doesn't check the Jars and calls them, withdrawing from StrategyCmpDAIV2. This transferred 19M DAI to pDAI.
The attacker then called pDAI.earn() three times, leading to a Compound deposit and the contract receiving cDAI. Three more smart contracts with malicious logic were deployed and the ControllerV4.swapExactJarForJar() function was invoked again, leading to the withdrawal of cDAI and transferring them to ControllerV4. The funds were then transferred to the attacker's smart contract, which redeemed cDAI for DAI from Compound and transferred DAI to the attacker's EOA.
The attacker's address:
https://etherscan.io/address/0x75aa9550…abe0f9
https://etherscan.io/address/0x02c83645…111ee6
The transaction behind the attack:
https://etherscan.io/tx/0xe72d4e7b…1087b0
Case & protocol details
Audit assessment
Review priorities based on the documented failure pattern in Pickle Finance (November 2020).
Critical checks
- Verify every sensitive logic path is guarded by appropriate access controls and input validation
Review history
- Audit Report 1 Report
A prior review is not a guarantee of safety, particularly when code changes after the reviewed version.
Evidence & learning
Sources and on-chain records
- report Post-mortem rekt.news
- report Report coindesk.com
- code Code reference github.com
Practice this exploit pattern safely
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.