Hacks / Statistics / Q2 2021

Q2 2021 Exploit Report

April–June 2021: 13 reproduced exploits, $142M in stated losses.

13 exploits from April–June 2021 are reproduced in the library, 9 more than in Q1 2021. 11 of them state a dollar loss, $142M in total, against $15.1M the quarter before. Governance was the most common root-cause category, on 7 of the 13 incidents (54%). BNB Chain had both the most incidents (10) and the largest stated losses ($131M). The largest stated loss was Uranium Finance Exploit at $50M, 35% of the quarter's stated total.

Incidents

13

4 in Q1 2021.

Stated losses

$142M

11 of 13 incidents state a dollar figure. $15.1M in Q1 2021.

Largest stated loss

$50M

Uranium Finance Exploit

Most common root cause

Governance

On 7 of 13 incidents.

Root causes

How many of the quarter's incidents carry each category.

Governance7Logic6Oracle Manipulation6DeFi3Arithmetic2Reentrancy2Access Control1Data Integrity1

An incident with two categories counts under both.

View as table
CategoryIncidentsStated losses
Governance7$48.8M
Logic6$51.8M
Oracle Manipulation6$87.4M
DeFi3$80.7M
Arithmetic2$30.5M
Reentrancy2$14.2M
Access Control1—
Data Integrity1—

Chains

Where the exploited contracts were deployed.

BNB Chain10Ethereum2Polygon1
View as table
ChainIncidentsStated losses
BNB Chain10$131M
Ethereum2$11M
Polygon1$188K

Largest stated losses

The 5 incidents of the quarter with the largest stated loss. Select a bar to open the write-up.

View as table
IncidentChainStated loss
Uranium Finance ExploitBNB Chain$50M
PancakeBunny ExploitBNB Chain$45M
Spartan Protocol ExploitBNB Chain$30.5M
Rari Capital ETH Pool ExploitEthereum$11M
BurgerSwap (Demax) ExploitBNB Chain$3.2M

Every incident of the quarter

Largest stated loss first. Each opens the root-cause write-up and the runnable replay.

IncidentStated loss
Uranium Finance ExploitBroken Constant-Product K Check (100× Slack in swap())$50M
PancakeBunny ExploitFlash-Loan LP Price-Oracle Manipulation Mints Unlimited BUNNY$45M
Spartan Protocol ExploitLP-Share Inflation via Spot-Balance Accounting + Unsynced Donation$30.5M
Rari Capital ETH Pool ExploitibETH.totalETH() Accounting Reentrancy via Bank.work()$11M
BurgerSwap (Demax) ExploitRe-entrant Multi-Hop Swap Drains the WBNB Side of the Pool Twice$3.2M
PancakeHunny ExploitmintFor() Reward Inflation via balanceOf(this) Donation$700K
Eleven Finance ExploitemergencyBurn() Pays Out Underlying Without Burning Vault Shares$648K
SafeDollar (SDO) ExploitMasterChef Reward Inflation via Drained lpSupply Divisor$188K
xWin Finance ExploitDisabled Slippage Control + _tradeParams.amount-Based Reward Inflation$176K
JulSwap (JulProtocolV2) ExploitSpot-Price Manipulation of addBNB() Liquidity Provisioning$155K
bEarn / bVaults BUSD-Alpaca Strategy ExploitemergencyWithdraw Re-prices Shares Against a Self-Inflating wantLockedTotal$123K
88mph NFT ExploitUnprotected init() Lets Anyone Seize Ownership of a Live NFT Clonenot in dollars
Value DeFi vSafe WBNB VaultInflated-Share Mint via Manipulated Alpaca ibBNB Strategy Pricenot in dollars

A loss is the first dollar figure the write-up states, often for the reproduced transaction and sometimes for the whole campaign. The library counts exploits reproduced here, not every incident in the industry. How these numbers are made.