💡 가격 조작 핵심: Harvest Finance의 Vault는 Curve Y Pool의 investedUnderlyingBalance를 실시간 오라클로 사용하여 fToken 공유 가격을 산정. 공격자가 Y Pool 내 USDC 비율을 17.2M USDT 스왑으로 일시 교란하면 공유 가격이 ~1.2% 하락하고, 복원 후 인출 시 차익 발생. 3% 차익거래 감지 임계값을 밑도는 미세 조작을 반복하여 탐지를 우회함.
2-5. Key Events (참조 Tx 기준)
#
Event
From
To
Amount
Deviation
1
Swap (Flashloan borrow)
Uniswap V2
Attacker
50,000,000 USDC 18,308,555 USDT
—
2
TokenExchangeUnderlying (Cycle 1 — Pump)
Attacker
Curve Y Pool
17,222,012 USDT → 17,216,703 USDC
$0.9997/USDC −0.03% from $1.00
3
Deposit
Attacker
Harvest USDC Vault
49,977,468 USDC
—
4
TokenExchangeUnderlying (Cycle 1 — Dump)
Attacker
Curve Y Pool
17,239,234 USDC → 17,230,747 USDT
$0.9995/USDT −0.05% from $1.00
5
Withdraw
Harvest USDC Vault
Attacker
50,298,684 USDC
—
6
Cycle 2 (×4 events) 동일 패턴
Attacker
Curve / Harvest
Deposit: 50,276,170 Withdraw: 50,596,877
$0.9997~0.9995 차익: +320,707 USDC
7
Cycle 3 (×4 events) 동일 패턴
Attacker
Curve / Harvest
Deposit: 50,574,381 Withdraw: 50,894,567
$0.9997~0.9995 차익: +320,186 USDC
8
Swap (Flashloan repayment)
Attacker
Uniswap V2
50,165,496 USDC 수수료: 165,496 USDC
—
9
Swap (USDC→WETH)
Attacker
Uniswap V2
37,289 USDC → 90.97 WETH
$410/ETH +0.0% from $410
10
Swap (Flashloan repayment)
Attacker
Uniswap V2
70.97 WETH + 18,334,705 USDT 수수료: WETH로 지불
—
Net Profit
Attacker
691,783 USDC + 20 WETH
≈ $700K
2-6. 유사 공격 비교
사고명
날짜
피해액
기법
Oracle
★
Harvest Finance
2020-10
$33.8M
Flash Loan + Pool 조작
Curve Y Pool
bZx Hack I
2020-02
~$1M
Flash Loan + 마진 조작
Kyber/Uniswap
bZx Hack II
2020-02
~$8M
Flash Loan + sUSD 펌프
Kyber/Synthetix
Eminence Finance
2020-09
$15M
Flash Loan + 본딩커브
Bonding Curve
Warp Finance
2020-12
$7.7M
Flash Loan + LP 토큰
LP Token Oracle
Cheese Bank
2020-11
$3.3M
Flash Loan + AMM 조작
Uniswap TWAP
2-7. 근본 원인 및 교훈
🔴 취약점 (Root Causes)
Harvest Vault이 Curve Y Pool의 스팟 가격을 실시간 오라클로 사용하여 공유 가격(Share Price)을 산정 — 단일 블록 내 조작에 취약
차익거래 감지 임계값이 3%로 설정되어 ~1.2% 수준의 미세 조작을 반복적으로 우회 가능
Deposit과 Withdraw가 동일 트랜잭션(Flash Loan) 내에서 실행 가능 — commit-reveal 미적용
Vault 잔고의 buffer 풀에서 직접 인출 가능하여 Curve Pool과의 2차 상호작용 없이 차익 실현
🟢 교훈 (Lessons)
DeFi 프로토콜은 단일 소스(AMM 스팟 가격)를 오라클로 사용하면 안 됨 — TWAP, Chainlink 등 다중 오라클 필수
Commit-and-reveal 메커니즘 도입으로 동일 트랜잭션 내 Deposit/Withdraw 차단
차익거래 감지 임계값을 동적으로 조정하고, 대규모 예치/인출 시 추가 슬리피지 보호 적용
Harvest Finance는 이후 인출 시 Curve 토큰을 별도 트랜잭션에서 스테이블코인으로 전환하는 방식으로 개선