Hacks / Statistics / Q1 2025

Q1 2025 Exploit Report

January–March 2025: 50 reproduced exploits, $1.47B in stated losses.

50 exploits from January–March 2025 are reproduced in the library, 15 more than in Q4 2024. 40 of them state a dollar loss, $1.47B in total, against $14.4M the quarter before. Logic was the most common root-cause category, on 27 of the 50 incidents (54%). BNB Chain had the most incidents (24), while Ethereum carried the largest stated losses ($1.47B). The largest stated loss was Bybit Cold-Wallet Heist at $1.46B, 99% of the quarter's stated total.

Incidents

50

35 in Q4 2024.

Stated losses

$1.47B

40 of 50 incidents state a dollar figure. $14.4M in Q4 2024.

Largest stated loss

$1.46B

Bybit Cold-Wallet Heist

Most common root cause

Logic

On 27 of 50 incidents.

Root causes

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

Logic27Access Control23Oracle Manipulation15DeFi11Dependency6Arithmetic4Reentrancy4Business Logic1Governance1Input Validation1

An incident with two categories counts under both.

View as table
CategoryIncidentsStated losses
Logic27$1.8M
Access Control23$1.46B
Oracle Manipulation15$1.4M
DeFi11$668K
Dependency6$1.46B
Arithmetic4$4.8M
Reentrancy4$496K
Business Logic1$3K
Governance1—
Input Validation1$4.5M
Untagged1—

Chains

Where the exploited contracts were deployed.

BNB Chain24Ethereum16Base7Arbitrum1Avalanche1zkSync1
View as table
ChainIncidentsStated losses
BNB Chain24$1.9M
Ethereum16$1.47B
Base7$30.2K
Arbitrum1$86K
Avalanche1—
zkSync1$202K

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
Bybit Cold-Wallet HeistEthereum$1.46B
1inch Fusion V1 Settlement ExploitEthereum$4.5M
AI IPC Token ExploitBNB Chain$590K
DCF Token ExploitBNB Chain$442K
SIR (Leverage) ExploitEthereum$354K

Every incident of the quarter

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

IncidentStated loss
Bybit Cold-Wallet HeistDelegateCall masterCopy Overwrite of a Gnosis Safe$1.46B
1inch Fusion V1 Settlement ExploitYul Calldata-Length Underflow Hijacks the Resolver Dynamic Suffix$4.5M
AI IPC Token ExploitSell-Triggered Pool Burn (_destroy) Drains the AMM Reserve$590K
DCF Token ExploitTransfer-to-Pair Reserve Burn Inflates DCF Price$442K
SIR (Leverage) ExploitDirty Transient-Storage Slot Turns uniswapV3SwapCallback Into an Open Drain$354K
The Idols NFT ExploitSelf-Transfer Reward Double-Claim via delete claimedSnapshots$329K
Yzi AI (YziAI / YziLabs) ExploitHard-Coded manager Backdoor in transferFrom$222K
Venus (zkSync Era) ExploitwUSDM ERC4626 Donation → Oracle Price Inflation → Self-Liquidation Drain$202K
UniLend V2 ExploitCollateral Self-Withdrawal via Flawed Health-Factor Accounting$200K
Four.meme Launchpad ExploitLiquidity Migration Front-Run via Pre-Initialized Pancake V3 Pool$186K
Hegic V8888 Put Pool ExploitRe-withdrawable Liquidity Tranche (withdrawWithoutHedge)$104K
Alkimiya SilicaPools Exploituint128(shares) Truncation Inflates Redemption Payout$95.5K
StepHeroNFTs ExploitReentrancy in claimReferral() Drains the Marketplace's BNB$92K
Paribus ExploitAlgebra/Camelot LP-NFT Collateral Priced from Manipulable Spot Price$86K
AST Token ExploitFaulty transfer Liquidity-Tracking Burns Pool Reserves Twice$65K
BankX RouterswapXSDForETH Reentrancy (BSC focus)$43K
LAURA Token ExploitPermissionless removeLiquidityWhenKIncreases() Reserve Burn$41.2K
Mosca ExploitSelf-Compounding join() Balance Inflation Drains the Treasury$37.6K
98Token ("98#") ExploitUnprotected public swapTokensForTokens() Drains the Contract's Token Reserve$28K
RoulettePotV2 ExploitPermissionless swapProfitFees() Drained Through a Manipulated WBNB/LINK Spot Price$27.7K
LPMine ExploitReward-Time Desync + Pool-Balance Reward Valuation Drains the Reward Pool$24K
H2O Token Exploitskim()-Triggered Self-Minting Reward Drain$22.5K
JPulsepot / FortuneWheel ExploitPermissionless swapProfitFees() + Spot-Price Fee Sizing$21.5K
Mosca ExploitexitProgram() Pays Out Internal Credit That Was Never Backed by a Deposit$19K
Odos Limit Order Router ExploitPublic ERC-6492 isValidSigImpl(... allowSideEffects = true) Arbitrary-Call Drain$15.6K
0xD4F1…7Cb3 ExploitUninitialized OwnableUpgradeable Lets Anyone Become Owner and withdrawFees()$15.2K
SamPrisonman (SBF) ExploitExternally-Controlled Balance Write Lets an Attacker Zero the AMM Pool Reserve$14K
AIXBT Forced-Swap ExploitPublic "Auth-Key" Selector Swaps Victim's Whole Balance into Attacker LP$13.6K
BBX Token ExploitStuck Daily-Burn Repeatedly Drains the Pool's BBX Reserve$11.9K
HORS ExploitUnprotected, Attacker-Callback 0xf78283c7 Drains the Pool's LP Tokens$10.4K
GMT7 Helper permissionless drainunverified trading bot helper exposed public buy/sell functions with no access control and infinite router approval$10.1K
GoldReserve NFT profit double-claimERC1155 transfer resets the per-address profit accumulator$7.3K
Unverified "Slot" Staking ContractreleaseSlot() Reentrancy BNB Drain$6.7K
Pump / TiPTAG Token ExploitPermissionless Pre-Listing Liquidity Seeding Drains the Bonding-Curve Listing$6.4K
Peapods Finance ExploitPermissionless depositFromPairedLpToken() Forced Swap at Manipulated Spot Price$3.5K
0x MainnetSettler ExploitArbitrary transferFrom via the BASIC Action's sellToken == address(0) Confused-Deputy Fall-Through$3K
RnsPay arbitrary dexRouter call drains any token a victim approved to the protocolattacker-supplied exchange target lets pay() execute transferFrom against arbitrary victims$1.1K
Unverified swapit() helperpublic function lets anyone trigger a contract-owned USDC swap through the same AMM pool, harvesting the price impact$980
wkeyDAO ExploitFixed-Price Presale buy() vs. Live AMM Price Arbitrage$767
PTM (Phoenix To Moon) tokenpublic addLiquidity() lets anyone spend the token contract's own PTM/USDT into the LP$553
DUCKVADER ExploitPermissionless Free-Mint via Broken buyTokens() + Storage Shadowingnot in dollars
HenloKart native-token drainzero-value race commitment funded from the victim balance, then immediately cancelled back to the attackernot in dollars
INVISTECH buy-tax drained the AMM pairfee-on-transfer tax charged from the pair's own reserves on every buy, breaking the constant-product invariantnot in dollars
MCAI tax-wallet allowance bypassprivileged transferFrom drains the Uniswap V2 pairnot in dollars
OpenOcean Limit Order Protocolunrestricted transferTokens() drains any pre-approved makernot in dollars
SBR Token Exploitskim() + broken token transfer zeroes a Uniswap-V2 reservenot in dollars
Scorch OTC scorch() drains ETH via manipulated spot getAmountsOut quoteon-chain price manipulation in a burn-for-ETH functionnot in dollars
Sorra Staking ExploitReward Recomputed In Full On Every Partial withdrawnot in dollars
StackMarket graduated-account flash-loan drainbuy path swaps a Uniswap V3 pool with caller-controlled (zero) slippage, then unwinds at the inflated pool pricenot in dollars
SWT token burn-then-sync drainpermissionless burn(address,uint256) desyncs an AMM pair's reserves before sync()not 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.