← Dashboard
BNB Smart Chain (BSC) Chain ID: 56
PMA Case #—
Belt Finance
Ellipsis 3EPS 풀 가격 조작을 통한 beltBUSD Vault 지분 과대 평가 — 7회 내부 루프 × 8회 트랜잭션으로 $6,234,753 BUSD 탈취
Share Valuation Manipulation Flash Loan Multi-Tx (×8) Yield Aggregator
Block 1 — 프로토콜 의존성 구조도
All
Step 1: Flash Loan
Step 2: Deposit (Ellipsis)
Step 3: Deposit (Venus)
Step 4: Price Manipulation
Step 5: Withdraw
Step 6: Reverse Swap
Step 7: Re-deposit
Step 8: Repay & Profit
PancakeSwap 8개 페어에서 $387.3M BUSD 플래시론 → Belt Vault 경유 Ellipsis/Venus 전략 예치 → Ellipsis 3EPS에서 $190M BUSD→USDT 대규모 스왑(BUSD 스팟가 −10.6%) → Belt Vault 지분 과대 평가 → 초과 인출 → 역스왑 슬리피지 회수. 7회 내부 루프 후 상환, ×8 트랜잭션.
Block #7,838,862 — 단일 Tx 내 7회 루프 (×8 Tx 반복)
Attacker CA 0x4eB3…1B5D
PancakeSwap 8 Pairs Flash Loan
Belt Finance beltBUSD Vault Multi-Strategy
Ellipsis 3EPS BUSD / USDC / USDT
Venus Protocol vBUSD Lending
Ellipsis Strategy bEllipsisBUSD
Venus Strategy bVenusBUSD
$387.3M BUSD 1
$10M BUSD 2
$187.3M BUSD 3
⚠ 가격 의존 $190M BUSD→$169.9M USDT ⚠ BUSD −10.6% 하락 4
$198.2M BUSD 5
$169.9M USDT→$189.4M BUSD 6
$197.5M re-deposit 7
Repay $388.5M 8
Block 2 — 종합 대시보드
2-1. Transaction Info
Date / Time (UTC) 2021-05-29 19:09:34
Attack Type Share Valuation Manipulation
Attacker Profit (this tx) 407,975.96 BUSD
Attacker Profit (8 txs total) ~$6,234,753 BUSD
Protocol Loss (total) ~$50,000,000 BUSD
Flash Loan Amount 387,315,996.87 BUSD
Flash Loan Fee (this tx) 1,165,444.32 BUSD
2-2. Attack Execution Flow
Step 1 — Flash Loan (idx #212~#219)
PancakeSwap 8개 페어에서 BUSD 차입
WBNB/BUSD ($107.7M), USDT/BUSD ($153.6M), USDC/BUSD ($38.2M), DAI/BUSD ($31.4M), UST/BUSD ($17.5M), VAI/BUSD ($17.3M), ALPACA/BUSD ($10.8M), Cake/BUSD ($10.7M) — EOA(0xBFAA…3077)가 트랜잭션 발신, CA(0x4eB3…1B5D)가 실행
+387,315,996.87 BUSD
Step 2 — Vault → Ellipsis Strategy (idx #223~#236, 첫 Tx에서만)
Belt Vault → StrategyEllipsis → Ellipsis 3EPS AddLiquidity
CA → beltBUSD Vault에 $10M BUSD 예치 (#223) → Vault가 bEllipsisBUSD로 라우팅 (#225→#227) → StrategyEllipsis가 3EPS에 AddLiquidity (#232) → 9,979,523 3EPS LP 수령 → LpTokenStaker에 Deposit (#236). 40.9 EPS 리워드 자동 스테이킹 (Staked #234)
−10,000,000 BUSD → 9,815,290 beltBUSD
Step 3 — Vault → Venus Strategy (idx #239~#244)
Belt Vault → bVenusBUSD 전략 대규모 예치
CA → beltBUSD Vault에 187,315,996.87 BUSD 예치 (#239) → Vault가 bVenusBUSD로 라우팅 (#242) → 183,330,311 bVenusBUSD 발행 (#241)
−187,315,996.87 BUSD → 183,917,614 beltBUSD
Step 4 — 가격 조작 (TokenExchange #248, ×7 반복)
공격자 CA가 직접 Ellipsis 3EPS에서 BUSD→USDT 대규모 스왑
$190M BUSD → $169,949,807 USDT (첫 루프). 실효 환율 0.8945 = −10.55%. Belt의 calcPoolValueInToken()이 이 왜곡된 3EPS virtual_price를 참조하여 beltBUSD 지분을 5~6% 과대 평가. 매 루프마다 USDT 수령량 감소 추세 (169.95M → 169.75M)
−190,000,000 BUSD → +169,949,807 USDT
Step 5 — 초과 인출 (Redeem #257, ×7 반복)
과대 평가된 beltBUSD 소각 → Venus에서 BUSD 인출
193,732,905 beltBUSD 소각 (#249) → Vault가 bVenusBUSD 전략에서 인출 → Venus Redeem 10,845,199 BUSD (#257, RedeemFee 1,084 BUSD). Vault에서 CA로 198,156,858 BUSD 전송 (#265). 루프 2~7은 853K~871K BUSD씩 Redeem. 총 Redeem 합계: 16,017,749 BUSD
+198,156,858 BUSD (첫 루프) | Σ Redeem: 16,017,749 BUSD
Step 6 — 역스왑 (TokenExchange #269, ×7 반복)
USDT→BUSD 역스왑으로 슬리피지 회수
169,949,807 USDT → 189,368,140 BUSD (첫 루프 #269). 실효 환율 1.1143 = +11.4% 프리미엄. 3EPS 풀이 USDT 과잉/BUSD 부족 상태이므로 역방향 프리미엄 획득
−169,949,807 USDT → +189,368,140 BUSD
Step 7 — 재예치 (idx #270, ×6 반복)
Belt Vault → Venus Strategy 재예치
197,524,998 BUSD → bVenusBUSD 재예치 (첫 루프 #270~#274). 다음 루프의 Step 4~5를 위한 상태 복원. 7번째 루프에서는 재예치 생략 후 바로 Step 8 진행
−197,524,998 BUSD (첫 루프)
Step 8 — Flash Loan 상환 + 이익 실현 (Swap #452~#473, Transfer #474)
PancakeSwap 8개 페어 상환 후 잔액을 EOA로 전송
388,481,441.20 BUSD 상환 (수수료 1,165,444.32 BUSD 포함). 잔여 407,975.96 BUSD를 수익금 수령 주소(0x8937…14ae)로 전송 (#474). 전체 8회 Tx 반복으로 $6,234,753 BUSD 달성
NET PROFIT: 407,975.96 BUSD (이 Tx) | ~$6,234,753 (8 Tx 합산)
2-3. Involved Entities & PnL
ATTACKER EOA Exploiter
+$6,234,753 BUSD
ATTACKER CA Attack Contract
이익금 → 0x8937…14ae로 전송
VICTIM Belt Finance — beltBUSD Vault
−$50,000,000 BUSD
beltBUSD 보유자 21.36% 손실 / 4Belt LP 5.51% 손실
FLASH LOAN PancakeSwap (8 Pairs)
$387.3M BUSD / fee: $1.17M
INTERMEDIARY Ellipsis — 3EPS Pool
EPS LP/staker 스왑 수수료 수령
INTERMEDIARY Venus Protocol
VBep20Delegator — BUSD 예치/인출
2-4. Share Valuation Manipulation Detail
정상 상태
BUSD/USDT 환율 1.0000
beltBUSD 가치 ≈ 1.00 BUSD
3EPS 풀 균형
⚠ 조작 후
BUSD/USDT 실효 환율 0.8945
괴리율 −10.55%
beltBUSD 과대 평가 +5~6%
조작 비용 (첫 루프)
BUSD→USDT 손실 −$20,050,192
USDT→BUSD 복구 +$19,418,333
순 스왑 손실 −$631,859
이익 원천 (첫 루프)
Vault 초과 인출 +$10,840,861
Flash fee −$1,165,444
순이익 (이 Tx) $407,975
2-5. Key Events (온체인 데이터 기반)
# Event From To Amount Deviation
1 Swap (×8 pairs, Flashloan borrow) PancakeSwap Attacker CA 387,315,996.87 BUSD —
2 AddLiquidity (#232) Belt StrategyEllipsis Ellipsis 3EPS 10,000,000 BUSD → 9,979,523 3EPS —
3 Vault Deposit → bVenusBUSD Attacker CA → Belt Vault Venus Strategy 187,315,996.87 BUSD —
4 TokenExchange (×7) Attacker CA Ellipsis 3EPS 7 × 190M BUSD → Σ 1,188.9M USDT $0.894/BUSD ($0.8945→$0.8934) −10.6%
5 Redeem (×7) Venus Belt StrategyVenusV2 Σ 16,017,749.79 BUSD —
6 TokenExchange — 역스왑 (×7) Attacker CA Ellipsis 3EPS Σ 1,188.9M USDT → Σ 1,325.6M BUSD $1.114/BUSD ($1.114→$1.116) +11.5%
7 Re-deposit (×6) Attacker CA → Belt Vault Venus Strategy $197.5M~$198.7M BUSD —
8 Swap (×8 pairs, Flashloan repayment) Attacker CA PancakeSwap 388,481,441.20 BUSD —
9 Profit Transfer (#474) Attacker CA 0x8937…14ae 407,975.96 BUSD —
TokenExchange 상세 (BUSD→USDT, 7회 루프)
Loop Idx BUSD Sold USDT Bought Rate Dev
1 248 190,000,000 169,949,807 0.8945 −10.55%
2 279 190,000,000 169,915,913 0.8943 −10.57%
3 309 190,000,000 169,882,021 0.8941 −10.59%
4 339 190,000,000 169,848,130 0.8939 −10.61%
5 369 190,000,000 169,814,240 0.8938 −10.62%
6 399 190,000,000 169,780,352 0.8936 −10.64%
7 429 190,000,000 169,746,466 0.8934 −10.66%
Venus Redeem 상세 (7회 루프)
Loop Idx Redeem (BUSD) RedeemFee Mint 재예치
1 257 10,845,199.67 1,084.63 4,338.51
2 287 853,070.42 85.32 341.26
3 317 856,642.88 85.67 342.69
4 347 860,242.14 86.03 344.13
5 377 863,868.52 86.40 345.58
6 407 867,522.31 86.76 347.04
7 437 871,203.86 87.13 348.52
합계 16,017,749.79 1,601.94 6,407.74
2-6. 유사 공격 비교
프로토콜 날짜 체인 공격 유형 피해액
Harvest Finance 2020-10-26 ETH Share Valuation / Curve Pool $25.0M
Yearn Finance (v1) 2021-02-05 ETH Flash Loan / Share Manipulation $11.0M
bEarn Fi 2021-05-16 BSC Flash Loan / Logic Error $11.0M
PancakeBunny 2021-05-19 BSC Flash Loan / Price Oracle $45.0M
BurgerSwap 2021-05-28 BSC Flash Loan / Reentrancy $7.2M
★ Belt Finance 2021-05-29 BSC Share Valuation Manipulation $6.3M ($50M total)
2-7. Root Causes & Lessons
취약점
Ellipsis 3EPS 풀의 스팟 가격(virtual_price)을 Belt Vault 전체 지분 가치 평가에 사용 — $190M 단일 스왑으로 조작 가능
모든 전략이 균형이라는 잘못된 가정 하에 Ellipsis 전략 가치만으로 전체 Vault 가치를 추정하는 calcPoolValueInToken() 로직
V1에서 Venus 통합 버그 발생 후에도 V2에서 동일 패턴의 Ellipsis 통합 취약점 방치
동일 블록 내 예치/인출 제한 없음 — 플래시론 공격에 무방비
교훈
멀티 전략 Vault는 각 전략의 가치를 독립적으로 산정해야 하며, 단일 AMM 풀의 스팟 가격에 의존 금지
AMM 스팟 가격 대신 TWAP 오라클이나 Chainlink 외부 오라클 사용 필요
동일 블록 예치+인출 제한, 지분 가치 변동 상한선(cap) 설정 필수
프로토콜 통합(포크) 시 개별 보안 감사 수행 — V1 감사가 V2 신규 전략을 커버하지 못함
2-8. 공격 당시 토큰 가격 (tokenPriceCache)
BUSD in 3EPS (조작 후)
~$0.894
−10.6%
💡 가격 조작 핵심: 공격자 CA(0x4eB3…1B5D)가 Belt Vault를 통하지 않고 직접 Ellipsis 3EPS Vyper 컨트랙트(0x160C…4E76)에서 $190M BUSD→USDT 스왑 실행. Belt의 StrategyEllipsis(0x4cdb…f135)가 아닌 공격자가 직접 풀을 조작한 것이 핵심. Belt Vault는 이 왜곡된 3EPS virtual_price를 기반으로 beltBUSD 지분 가치를 계산하여, 인출 시 예치 대비 5~6% 더 많은 BUSD를 지급함.
Block 3 — 인터랙티브 Fund Flow
Step 1: Flash Loan
Step 2: Deposit EPS
Step 3: Deposit Venus
Step 4: BUSD→USDT
Step 5: Withdraw
Step 6: USDT→BUSD
Step 7: Re-deposit
Step 8: Repay
Attacker CA 0x4eB3…1B5D
PancakeSwap 8 Pairs
Ellipsis Strategy bEllipsisBUSD
Belt Vault beltBUSD
Venus Strategy bVenusBUSD
Ellipsis 3EPS BUSD/USDC/USDT
$387.3M BUSD
$10M BUSD
$187.3M BUSD
$190M BUSD→$169.9M USDT
$198.2M BUSD
$169.9M USDT→$189.4M BUSD
$197.5M re-deposit
Repay $388.5M
BUSD flow Deposit / Token Price manipulation Withdraw / Repay
PancakeSwap 8개 BUSD 페어에서 387,315,996.87 BUSD 플래시론 수령. Transfer #212~#219 — 8개 페어 각각에서 공격자 CA(0x4eB3…1B5D)로 BUSD 전송.
Block 4 — BUSD Balance Waterfall (단일 Tx)
Flash Loan 유입 유출 Exploit 유입 Net Profit