Harvest Finance Hack

Reported loss $33.8M
Ethereum
Flash-loan-funded Curve Y pool price manipulation and vault-share accounting arbitrage

What happened

Harvest Finance's USDC and USDT vaults lost about $33.8 million on October 26, 2020 when an attacker used flash-loaned stablecoins to move the Curve Y pool conditions used in Harvest's vault accounting. The attacker deposited while the manipulated valuation yielded excess fUSDC or fUSDT shares, reversed the Curve trade, and redeemed those shares at the restored valuation. The incident affected the USDC and USDT vaults, not Harvest's DAI, TUSD, WBTC, or renBTC vaults.

Harvest withdrew funds from the affected shared-pool strategies and later made funds returned by the attacker available to affected users alongside GRAIN claims.

Technical root cause

Harvest's vault accounting used a real-time valuation derived from a Curve shared pool when minting and redeeming vault shares. That external pool state could be moved by a large same-transaction trade. The attacker exploited the resulting mismatch: shares were minted while the Curve-derived value was manipulated, then redeemed after the trade was reversed. The existing 3% arbitrage threshold allowed the approximately 1% USDC share-price movement used in the documented cycle.

How it happened

  1. The attacker borrowed large USDC and USDT balances within the attack flow, then made a large Curve Y pool swap that temporarily changed the value Harvest used for an individual stablecoin position.
  2. With that value distorted, the attacker deposited into a Harvest vault and received more vault shares than the deposit should have produced at an unmanipulated valuation.
  3. The attacker then reversed the Curve swap and withdrew the Harvest shares at the restored valuation.
  4. The pattern was repeated across USDC and USDT vault transactions over roughly seven minutes.

Protocol details

Classification Oracle manipulation / manipulable market-price dependency
Protocol Type Yield Aggregator
Affected asset / contract FARM
Implementation language Solidity

Security review history

Funds Recovery

7.34%

Recovered

$2.5M

Net Loss

$31,319,080

Build your security review skills

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