Pickle Finance Hack
What happened
On November 21, 2020, Pickle Finance's pDAI Jar lost 19,759,355 DAI after ControllerV4 accepted attacker-controlled Jars in swapExactJarForJar. The fake contracts exploited missing Jar validation and an unsafe controller code-execution path to withdraw cDAI from the legitimate strategy, transfer it to the attacker, and redeem it for DAI.
How it happened
ControllerV4 did not verify that supplied Jar contracts were approved implementations. The attacker used fake Jars to route assets out of the legitimate pDAI strategy and trigger an unsafe execution path in the controller. A crafted deposit call then transferred cDAI from StrategyCmpdDaiV2 to the attacker-controlled Jar, which redeemed it for DAI.
This was not a flash-loan attack. Pickle later used a compensation mechanism for affected users; it was not recovery of the stolen DAI.
Protocol details
Security review history
- HAECHI Audit View report
- PeckShield View report
- MixBytes View report
Evidence
Proof of concept
1 availableSources
- report Post-mortem rekt.news
- report Report coindesk.com
- transaction Etherscan: Pickle exploit transaction etherscan.io
- code Code reference github.com
- code Code reference github.com
- analysis DeFiLlama defillama.com
- analysis Pickle Finance: Pickle was hacked and there has been a loss of funds picklefinance.medium.com
- analysis PeckShield: Pickle Incident Root Cause Analysis peckshield.medium.com
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.