Securityadvancedarticle30 min read

Hack Beanstalk Farms: $182M Flash Loan Governance Takeover | VCC

Ngày 17 tháng 4 năm 2022, **beanstalk farms hack** đã viết lại cẩm nang khai thác DeFi. Kẻ tấn công không phá vỡ mật mã, không tìm thấy lỗi reentrancy, và không khai thác price oracle. Thay vào đó, họ dùng **flash loan để mua quyền governance**, đề xuất upgrade độc hại, và thực thi ngay lập tức qua ...

Vietcardano teamTeam

Đội ngũ biên tập VietCardanoCommunity — các chuyên gia blockchain và Cardano, cung cấp nội dung giáo dục và nghiên cứu chuyên sâu cho cộng đồng.

Published 14 tháng 9, 2026

Ngày 17 tháng 4 năm 2022, beanstalk farms hack đã viết lại cẩm nang khai thác DeFi. Kẻ tấn công không phá vỡ mật mã, không tìm thấy lỗi reentrancy, và không khai thác price oracle. Thay vào đó, họ dùng flash loan để mua quyền governance, đề xuất upgrade độc hại, và thực thi ngay lập tức qua hàm emergencyCommit bypass timelock 24 giờ chuẩn. Kết quả: $182 triệu bị rút khỏi Beanstalk Farms trong vài phút — cuộc tấn công flash loan governance đầu tiên trong lịch sử DeFi.


TL;DR

  • Chuyện gì xảy ra: Kẻ tấn công dùng flash loan $1B để lấy Stalk (governance token), đề xuất BIP-18 độc hại, thực thi qua emergencyCommit (bypass timelock 24h), rút $182M
  • Khi nào: 17 tháng 4, 2022 (khai thác trong ~20 phút)
  • Nguyên nhân gốc: BIP-18 emergencyCommit cho phép thực thi tức thời với 2/3 Stalk; không timelock, không flash loan resistance trên Stalk
  • Attribution: Kẻ tấn công ẩn danh (tinh vi, hiểu sâu Ethereum/Beanstalk); không liên kết nation-state
  • Tác động: ~$182M rút across Bean, Uniswap v2 pools; protocol paused; Halborn audit commissioned
  • Fix: Redesign governance — timelock trên upgrade, Stalk vesting, flash loan resistance, multi-sig trên upgrade

Protocol: Beanstalk — Stablecoin dựa trên tín dụng

Trước exploit, Beanstalk là credit-based stablecoin protocol trên Ethereum. Khác với stablecoin overcollateralized (DAI, USDC), Beanstalk duy trì peg $1 qua credit dynamics — user cho BEAN mượn protocol (Silo), nhận Stalk (governance token) và Seeds (yield).

Thành phần chính:

  • Bean: Stablecoin target peg $1
  • Silo: Staking module — deposit BEAN/LP token, nhận Stalk (governance) + Seeds (yield)
  • Field: Lending module — cho BEAN mượn protocol, nhận Pods (claim BEAN tương lai)
  • Barn: Fundraising module — raise capital khi peg deviation
  • Diamond (Proxy): Upgradeable contract — facet cho Silo, Field, Barn, Governance
  • Governance (BIPs): Bean Improvement Proposals — Stalk holder vote upgrade

Stalk (governance token): Nhận khi deposit BEAN/LP vào Silo. 1 Stalk = 1 vote. Không lockup, không vesting, instant liquidity — đây là flaw nghiêm trọng.


Diagram - Beanstalk Protocol Architecture: Diamond Proxy -> Facets (Silo, Field, Barn) -> Governance; emergencyCommit = vulnerability

Lỗ hổng: emergencyCommit trong BIP-18

Beanstalk governance dùng Bean Improvement Proposals (BIPs). BIP chuẩn có timelock 24 giờ sau khi đạt quorum. Nhưng BIP-18 giới thiệu emergencyCommit:

// Simplified BIP-18 emergencyCommit (conceptual)

function emergencyCommit(uint256 bipId) external {

require(stalkBalance[msg.sender] >= totalStalk 2 / 3, "Need 2/3 Stalk");

// NO TIMELOCK!

_executeBip(bipId); // IMMEDIATE EXECUTION

}

Bug: emergencyCommit cho phép thực thi tức thời với 2/3 Stalk majority — không timelock 24 giờ. Giả định: "không ai lấy được 2/3 Stalk." Flash loan đã phá vỡ giả định này.


Cuộc tấn công: Flash Loan Governance Takeover

17 tháng 4, 2022, ~18:00 UTC — Kẻ tấn công vay ~$1B flash loan từ Aave v2: 24.830 ETH + 35M BEAN.

18:05 UTC — Kẻ tấn công swap ETH lấy BEAN trên Uniswap, deposit BEAN vào Silo → nhận Stalk khổng lồ (governance power).

18:10 UTC — Kẻ tấn công đề xuất BIP-18 với malicious upgrade contract (rút hết protocol fund).

18:15 UTC — Kẻ tấn công gọi emergencyCommit trên BIP-18. 2/3 Stalk threshold đạt tức thời (kẻ tấn công control majority qua flash loan). Không timelock — thực thi ngay lập tức.

18:20 UTC — BIP-18 thực thi: upgrade Diamond facet thành malicious contract → rút ~$182M từ Bean, Uniswap v2 BEAN/ETH, BEAN/3CRV pool.

18:25 UTC — Kẻ tấn công trả Aave flash loan (+ phí), giữ ~$80M profit.


Con số: $182M rút trong vài phút

Diagram - Beanstalk Hack Timeline: Apr 17, 2022 exploit to drain in 20 minutes


MetricValue
Tổng rút~$182 triệu
Profit kẻ tấn công~$80 triệu
Loss protocol~$102 triệu
Chain affectedEthereum Mainnet
Time window~20 phút
Flash loan size~$1B (24.830 ETH + 35M BEAN)
Stalk acquired>2/3 total supply (qua flash loan)
Attackers1 (single actor)

Đây là "governance takeover" — không phải bug trong math hay cryptography, mà là flaw trong governance design. Kẻ tấn công dùng chính governance mechanism của protocol để chống lại nó.


Phân tích nguyên nhân gốc: emergencyCommit flaw

Governance Design

Beanstalk dùng Stalk (nhận khi stake BEAN) làm governance power. 1 Stalk = 1 vote. BIP yêu cầu:

1. Proposal submitted

2. Voting period 24 giờ

3. Quorum + majority → queue cho timelock 24h

4. Execution sau timelock

BIP-18 thêm emergencyCommit cho fix "khẩn cấp". Nó cho phép thực thi tức thời với 2/3 Stalk majority — không timelock.

Missing Checks

// Missing in emergencyCommit:

require(block.timestamp >= proposal.timestamp + 24 hours, "Timelock required");

require(stalkNotFromFlashLoan(msg.sender), "Flash loan Stalk not allowed");

Không check nào tồn tại. Protocol giả định 2/3 Stalk không thể acquire — flash loan đã chứng minh sai.

Exploit Construction

1. Vay $1B từ Aave (24.830 ETH + 35M BEAN)

2. Swap ETH → BEAN trên Uniswap (quản lý slippage)

3. Deposit 35M BEAN vào Silo → nhận Stalk khổng lồ (governance token)

6. Đề xuất BIP-18 với malicious Diamond facet upgrade

7. Gọi emergencyCommit — 2/3 Stalk threshold đạt → thực thi tức thời

7. Malicious facet rút hết protocol fund

8. Trả Aave flash loan, giữ ~$80M profit

Diagram - Flash Loan Governance Attack Flow


Flash Loan Governance Playbook

Đây là cuộc tấn công flash loan governance đầu tiên. Playbook:

1. Identify governance token không lockup (Stalk từ Silo)

2. Flash loan để acquire governance power (vay asset → deposit → mint governance token)

3. Đề xuất malicious upgrade (rút fund, thay đổi parameter)

4. Dùng emergency/shortcut path (bypass timelock)

5. Thực thi, rút, trả flash loan, profit

Tại sao thành công trên Beanstalk:

  • Stalk không lockup, không vesting, instant minting từ Silo deposit
  • emergencyCommit không timelock — thực thi tức thời
  • Không flash loan resistance trên Stalk minting
  • Không anomaly detection trên governance power accumulation

Hậu quả: Protocol Paused, Audit Commissioned

17 tháng 4, 2022, ~18:25 UTC — Tấn công hoàn tất. Beanstalk team pause protocol (emergency pause).

18 tháng 4 — Community kêu gọi recovery. Halborn engaged cho full audit.

Tháng 4 2022 - Hiện tại — Beanstalk v2 development: redesign governance với timelock, Stalk vesting, flash loan resistance, multi-sig trên upgrade.

Loss: ~$182M tổng rút. Không user fund recovered (protocol paused, không insurance). Kẻ tấn công giữ ~$80M profit.


Diagram - Attack Flow & Fund Flow


Bài học: Cái gì đã ngăn chặn được

1. Governance timelock là không thể thương lượng. Không path "emergency" nào được bypass timelock. Nếu emergency upgrade cần thiết, dùng multi-sig + delay 48h tối thiểu.

2. Governance token cần lockup/vesting. Stalk nên có vesting period (vd: 30 ngày) hoặc lockup trước khi voting power activate. Flash loan Stalk = instant power = broken.

3. Flash loan resistance trên governance token. Stalk không nên mintable từ flash-loaned asset. Silo nên check block.timestamp > depositTimestamp + lockupPeriod.

4. Diamond/proxy upgrade cần multi-sig + timelock. Facet upgrade là operation mạnh nhất — nên yêu cầu multi-sig + timelock 48h, không phải simple majority vote.

5. Anomaly detection trên governance power. Circuit breaker pause governance khi >X% voting power acquire trong Y block.

6. Formal verification governance code. Hàm emergencyCommit chỉ ~20 dòng code critical. Nên được formally verified (Certora, Coq).


Diagram - Defense Checklist 5 Lessons


Câu hỏi thường gặp

Bao nhiêu bị steal trong Beanstalk hack?

~$182 triệu rút khỏi protocol (Bean, Uniswap v2 pool). Kẻ tấn công profit ~$80M sau flash loan repayment.

Đây là smart contract bug?

Không phải bug truyền thống (reentrancy, overflow). Đây là governance design flaw: emergencyCommit cho phép thực thi tức thời với flash-loaned governance power. Code chạy đúng như viết — design bị flaw.

Ai hack Beanstalk?

Không rõ. Kẻ tấn công thể hiện hiểu biết sâu về Ethereum/Beanstalk (flash loan mechanic, BIP-18, Diamond proxy). Không attribution nation-state công khai.

User có mất tiền không?

Có — user có fund trong Beanstalk (Bean holder, Silo depositor, Field lender) mất ~$182M. Protocol paused; chưa recovery.

Tại sao kẻ tấn công lấy 2/3 Stalk dễ vậy?

Stalk mint tức thời khi deposit BEAN vào Silo. Kẻ tấn công flash-loan BEAN, deposit, nhận Stalk majority tức thời. Không lockup, không vesting, không delay.

emergencyCommit là gì và tại sao nguy hiểm?

emergencyCommit cho phép thực thi BIP tức thời với 2/3 Stalk, bypass timelock 24h. Nó giả định 2/3 Stalk không thể obtain — flash loan đã phá vỡ điều này.

Beanstalk đã fix governance chưa?

Rồi. Beanstalk v2 redesign bao gồm: governance timelock (48h+), Stalk vesting (30 ngày), flash loan resistance (deposit lockup), multi-sig trên upgrade, anomaly detection.

Protocol/bridge nào vulnerable với attack tương tự?

Bất kỳ protocol nào: governance token không lockup, emergency upgrade path tồn tại, flash loan có thể acquire governance power, upgrade power không multi-sig protected.


Technical Appendix: Governance Flow đúng với safeguard

Cho developer, đây là governance flow đúng mà Beanstalk đã thiếu:

1. Propose BIP (upgrade, parameter change, v.v.)

2. Voting period (tối thiểu 48h)

3. CHECK: quorum đạt + majority

4. CHECK: proposer Stalk không từ flash loan (lockup > 30 ngày)

5. Queue cho execution (timelock 48h+)

6. TIMELOCK: chờ 48h

7. CHECK: không anomaly detected (TVL outflow, governance power spike)

8. Execute (multi-sig required cho facet upgrade)

9. Post-execution: verify state, monitor TVL

Missing check ở step 4, 6, 7, và 8 đã tốn $182M.


Bài viết thuộc series DeFi Hacks. Để xem phân tích sâu hơn về governance exploit, xem phân tích Compound Finance hack, Cream Finance flash loan, và Mango Markets oracle manipulation.*

Tags:

beanstalk farms hackbeanstalk 182 millionflash loan governance attackdao governance exploitbeanstalk hack analysis