Beanstalk Hack Analysis & POC (Apr 17, 2022)

Table Of Content

Share:

Introduction

Beanstalk protocol got hacked for around $74M through exploiting the governance mechanism & stealing all the BEANS & Curve LP tokens stored in the Beanstalk protocol. It is a bit complex hack, let's break it down step by step.

Hack transaction

Hacker’s Address

Hacker Exploit Contract

Proposal creation transaction on BeanGovernance

Imperative Functions of the Protocol

Before diving into the hack let's analyze how the governance system worked for the protocol & why the proposal was important.

  1. The idea of a proposal is to modify the beanstalk protocol in any way that attracts or affects the interest of the community.
  2. A proposal for governance can be created by anyone who has deposited beans into the protocol. Anyone who hasn’t deposited beans will not be able to create the proposal.
  3. The proposal in this scenario is a smart contract that will be executed if enough votes pass for it. An example of this can be to whitelist other pools for governance voting, etc.
  4. If anything goes wrong, there is also an emergencyCommit function that bypasses all of the individual votes & executes the proposal. It can be called after a waiting period of one day. 

The Intent

The attacker created 2 Proposals.

  1. Malicious Proposal Contract (BIP18) 
  2. Ukraine donation proposal

The malicious contract requested the following tokens to be sent over the exploit contract address.

  1. BEAN3CRV-f, A BEAN-CRV metapool on curve.
  2. BEANLUSD-f, A BEAN-LUSD metapool on curve.
  3. UNI-V2 ETH/BEAN, A liquidity pool for ETH-BEAN.
  4. BEAN token.

Undertakings of the Exploit

  1. The attacker starts by taking a flashloan of $1 Billion from AAVE v2 containing the following assets.
    • 350,000,000 DAI
    • 500,000,000 USDC 
    • 150,000,000 USDT
  1. The attacker takes yet another Flashloan from Uniswap v2 for 32,100,950 BEAN & Sushiswap for 11,643,065 LUSD.
  2. Then the attacker deposits DAI, USDC & USDT to Curves 3Pool (DAI/USDC/USDT) to get 979,691,328 3Crv tokens.
  3. Exchange 15,000,000 CRV tokens to 15,251,318 LUSD on BEANLUSD-f pool.
  4. Add single asset liquidity 964,691,328 CRV to get 795,425,740 BEAN3CRV-f.
  5. The attacker deposits 32,100,950 BEAN & 26,894,383 LUSD to get 58,924,887 BEANLUSD-f
  6. The user then deposits BEANLUSD-f & BEAN3CRV-f to the beanstalk contract to get enough voting power.
  7. The attacker calls Diamond.vote(18) At this point user has control over 66% of the voting power.
  1. The proposal gets executed by calling the Diamond.emergencyCommit(18) function on beanstalk protocol which sends the following tokens back to the exploit contract.
    1. 36,084,584 BEAN
    2. 0.540716100968756904 UNI-V2 ETH/BEAN.
    3. 874,663,982 BEAN3CRV-f.
    4. 60,562,844 BEANLUSD-f.
    5. 100 BEAN minted to the exploit contract.
  2. Removes 874,663,982 CRV single liquidity to get 1,007,734,729 CRV tokens.
  3. Removes 60,562,844 BEANLUSD-f single liquidity to get 28,149,504 LUSD.   
  4. Returns flashloan of 11,678,100 LUSD to Sushiswap.
  5. Returns flashloan of 32,197,543 BEAN to Uniswap V2.
  6. Exchanges 16,471,404 LUSD to get 16,184,690 CRV on LUSDCRV-f.
  7. Removes liquidity from 511,959,710 3CRV Pool to get 522,487,380 USDC, 358,371,797 DAI, 156,732,232 USDT.
  8. Returns flashloan on aave for 350,315,000 DAI, 500,450,000 USDC & 150,135,000 USDT.
  9. Removes liquidity on 0.540716100968756904 Uniswap V2 to get 10,883 Eth & 32,511,085 BEAN.
  10. Donated 250,000 USDC to Ukraine Donation Wallet. 
  11. Swap 15,443,059 DAI to 15,441,256 USDC on Uniswap V3.
  12. Swap 37,228,637 USDC for 11,822 Eth on Uniswap V3.
  13. Swap 6,597,232 USDT for 2,124 Eth on Uniswap V3.
  14.  Leaving the attacker with over 24k Eth ~ $72M in profit.

The Exit Strategy

The hacker used tornado cash & split the ~24k Eth into chunks of 1, 10 & 100 Eth to disappear in thin air. One thing to note is that this hack was a result of a bad governance design and not the economic design.

HACK YOURSELF!

Here is the Github repo that has POC for the hack.

Also see Cream Finance Hack: What Motivates Hackers to Return Stolen Funds?

More Audits

Dforce Network - February 13, 2023

The attack on dForce network had significant consequences for the platform and its users. By exploiting a reentrancy vulnerability in the wstETH/ETH pool on Curve and the dForce wstETH/ETH Vault, the attacker was able to manipulate the virtual price of the pool, which in turn affected the oracle used by the dForce wstETH/ETH Vault

DeFiGeek Community JAPAN - Hack Analysis (Apr 17, 2023)

On Apr 17, 2023. The DeFiGeek Community fell victim to a security breach in which an attacker exploited a flash loan vulnerability, causing the loss of 10 ETH (valued at over $20,000) from their DeFiGeek Community Pool Dai (fDAI-102

Rain Protocol Audit Report

Rain Protocol lets you build web3 economies at any scale.Rain scripts are a combination of low level functions (opcodes) like addition and subtraction and very high level functions like fetching an ERC20 balance at a given snapshot ID (Open Zeppelin), or fetching a chainlink oracle price.

ZeroLiquid Protocol - Audit Report

BlockApex (Auditor) was contracted by ZeroLiquid (Client) to conduct a Smart Contract Audit/ Code Review. This document presents the findings of our analysis, which started on 11th July ‘2023.

Metaverse: Virtual Wonderland Or Capitalist Dystopia?

Security and privacy are among the top issues expected to arise in the metaverse. Some have even gone so far as to say that the metaverse is capitalizing on users' desire to escape from reality.

Merlin DEX - April 26, 2023

In April 2023, Merlin DEX,a decentralized exchange (DEX) built on ZkSync, suffered a hack during a Liquidity Generation Event for its MAGE token, resulting in an estimated loss of $1.8 million from the protocol.

Orion Protocol - February 4, 2023

The attackers exploited a reentrancy vulnerability in the Orion Protocol's core contract, ExchangeWithOrionPool, by constructing a fake token (ATK) with self-destruct capability that led to the transfer() function.

Infiltrating the EVM: Advanced Strategies for Blockchain Security Guardians

Learn advanced strategies for blockchain security guardians in this groundbreaking article series by BlockApex Labs. Gain insights into the Ethereum Virtual Machine (EVM), smart contract vulnerabilities, and thorough auditing techniques. Stay ahead in the evolving world of blockchain security and prevent financial losses with comprehensive knowledge. Join us for the article series and course today.

The Poly Network Hack: Who to Blame?

What was essentially the biggest hack in the history of cryptocurrency became a valuable lesson on the importance of security and just how powerless big organizations can become in the face of powerful hackers. The unusual trajectory of this incident also begs the question of where to place the blame in these kinds of attacks. Read more to find out exactly how the hack took place as we analyze the most pressing questions surrounding this attack.

1 2 3 11
Designed & Developed by: 
All rights reserved. Copyright 2023