Pickle Finance Hack

Reported loss $19.7M
Ethereum
Other

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

Classification Yield Aggregator / Protocol Logic / Input Validation
Protocol Type Yield Aggregator
Affected asset / contract PICKLE
Implementation language Solidity
Protocol links Website @picklefinance

Security review history

Build your security review skills

Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.