Hacks / Statistics / Q1 2023

Q1 2023 Exploit Report

January–March 2023: 37 reproduced exploits, $324M in stated losses.

37 exploits from January–March 2023 are reproduced in the library, 23 fewer than in Q4 2022. 24 of them state a dollar loss, $324M in total, against $63M the quarter before. Logic was the most common root-cause category, on 26 of the 37 incidents (70%). BNB Chain had the most incidents (18), while Ethereum carried the largest stated losses ($205M). The largest stated loss was Euler Finance $197M Exploit at $197M, 61% of the quarter's stated total.

Incidents

37

60 in Q4 2022.

Stated losses

$324M

24 of 37 incidents state a dollar figure. $63M in Q4 2022.

Largest stated loss

$197M

Euler Finance $197M Exploit

Most common root cause

Logic

On 26 of 37 incidents.

Root causes

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

Logic26DeFi10Access Control8Oracle Manipulation7Dependency4Reentrancy4Arithmetic3Untagged1

An incident with two categories counts under both.

View as table
CategoryIncidentsStated losses
Logic26$221M
DeFi10$294K
Access Control8$13.3M
Oracle Manipulation7$107M
Dependency4$2.6M
Reentrancy4$13.1M
Arithmetic3$3.9M
Untagged1—

Chains

Where the exploited contracts were deployed.

BNB Chain18Ethereum13Polygon3Arbitrum2Avalanche1
View as table
ChainIncidentsStated losses
BNB Chain18$11.7M
Ethereum13$205M
Polygon3$95.6M
Arbitrum2$3.6M
Avalanche1$8.5M

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
Euler Finance $197M ExploitEthereum$197M
BonqDAO / AllianceBlock ExploitPolygon$88M
SafeMoon ExploitBNB Chain$8.9M
Platypus Finance ExploitAvalanche$8.5M
Midas Capital ExploitPolygon$6.6M

Every incident of the quarter

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

IncidentStated loss
Euler Finance $197M ExploitdonateToReserves Enables Self-Liquidation That Drains the Protocol's Reserves$197M
BonqDAO / AllianceBlock ExploitTellorFlex Oracle Price Manipulation (Cheap-Stake submitValue)$88M
SafeMoon ExploitUnprotected burn(from, amount) Drains the AMM Pair Reserve$8.9M
Platypus Finance ExploitFlawed LP-Collateral Pricing in PlatypusTreasure (_getLPUnitPrice)$8.5M
Midas Capital ExploitReentrancy-inflated Curve-LP Oracle for stMATIC Collateral (Compound v2 fork, Polygon)$6.6M
dForce ExploitRead-only Reentrancy via Curve remove_liquidity into the dForce Price Oracle$3.6M
EFVault / ENF Exploitredeem() Share-Price Decimal Bug Drains USDC$3.4M
Orion Protocol ExploitReentrancy via Malicious Deposit Token in swapThroughOrionPool / depositAsset$2.8M
Dexible ExploitCaller-Controlled router/routerData in selfSwap/fill$1.5M
Phoenix (PHX) ExploitMissing Access Control on delegateCallSwap(bytes)$1M
SwapX ExploitUnverified swapX Router Drains Pre-Approved Victim BUSD via Caller-Controlled Recipient$1M
LaunchZone (LZ) ExploitUnverified swapXImp Logic Flaw (Permissionless Victim-Side Swap)$700K
Poolz LockedDeal ExploitInteger Overflow in getArraySum Crediting Free Vesting Pools$390K
BRA Token Exploit_transfer Buy/Sell Tax Credited to the Pair Itself, Drained via skim()$224K
GDS Coin ExploitSpot-Price pureUsdtToToken Reward Inflation via Nested Flash Loans (BSC)$207K
CowSwap SwapGuard ExploitUnvalidated Interaction Target in envelope() (arbitrary transferFrom under maxint allowedLoss)$115K
UFO/UFDao (UFT) ExploitTreasury-Share Mispricing on a Tiny-Supply LP Token$90.1K
DKP Exchange ExploitFlash-Loan-Manipulated AMM Price Oracle Lets 100 USDT Buy the Whole DKP Reserve$80.5K
ROE Finance ExploitManipulatable LP-Token Oracle + Re-deposit Collateral Inflation$64.1K
BEVO ExploitReflective-Token deliver() Pool-Balance Inflation Drain (PancakeSwap Flash)$40K
BIGFI ExploitReflection-Token burn() That Shrinks Supply Without Shrinking Reflection Space$30.3K
DBW Finance ExploitDividend Reward Double-Claimed via 18 Proxy Clones Each Holding ~100% of the LP$21.7K
Revert Finance (V3Utils) ExploitUnvalidated swapData Lets Anyone Route User-Allowance Tokens to an Attacker$19.8K
Thena RewardPool ExploitReentrant unstake(…, claim=true) Double-Payout of Converted Rewards$10.2K
DYNA (Dynamic) ExploitReward-Inflation in StakingDYNA.deposit/redeem + Time-Bypassable Sell Capnot in dollars
FDP (FireDrake) ExploitReflective-Token deliver() Inflates the AMM Pair's Balancenot in dollars
OmniEstate ExploitStaking Reward Calculated From a Stale Storage Variable (Zero-Duration Over-Claim)not in dollars
ParaSpace ExploitApeCoin-Staking (cAPE) Collateral Mis-Accounting + Same-Tx Supply→Borrownot in dollars
ParaSpace Exploit (variant 2)ApeCoin Staking Supply/Borrow Reentrancynot in dollars
QTN (QUATERNION) ExploitReflection-Supply Rebase Inflation via skim() Loopnot in dollars
Sheep ExploitReflective-Token _burn Distorts balanceOf, Drains SHEEP/WBNB Pair via DODO Flashnot in dollars
SHOCO ExploitReflection deliver() Deflation Inflates the AMM Pair's Effective Balancenot in dollars
Sperax USDs ExploitisContract()-Based Rebase Accounting Flip on a Pre-Credited EOAnot in dollars
Starlink (Starlink Coin) ExploitReflective Token Fee vs. Pancake skim/sync Reserve Drainnot in dollars
Thoreum Finance ExploitDividend/Rebase Token Self-Transfer Balance Inflationnot in dollars
TomInu (TINU) ExploitReflective-Token (RFI) Reflection-Rate Skim against a Uniswap-V2 Pairnot in dollars
Upswing (UPS) ExploitsellPressure Farming + releasePressure() LP-Burn That Breaks knot 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.