Hacks / Statistics / Q3 2025

Q3 2025 Exploit Report

July–September 2025: 52 reproduced exploits, $51.1M in stated losses.

52 exploits from July–September 2025 are reproduced in the library, 3 fewer than in Q2 2025. 46 of them state a dollar loss, $51.1M in total, against $26.7M the quarter before. Logic was the most common root-cause category, on 39 of the 52 incidents (75%). Ethereum had the most incidents (20), while Arbitrum carried the largest stated losses ($41.1M). The largest stated loss was GMX v1 Exploit at $41M, 80% of the quarter's stated total.

Incidents

52

55 in Q2 2025.

Stated losses

$51.1M

46 of 52 incidents state a dollar figure. $26.7M in Q2 2025.

Largest stated loss

$41M

GMX v1 Exploit

Most common root cause

Logic

On 39 of 52 incidents.

Root causes

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

Logic39Access Control27DeFi16Oracle Manipulation16Dependency13Governance4Authentication2Input Validation2Reentrancy2Arithmetic1

An incident with two categories counts under both.

View as table
CategoryIncidentsStated losses
Logic39$50.3M
Access Control27$3.8M
DeFi16$5.1M
Oracle Manipulation16$46.7M
Dependency13$2.9M
Governance4$78.8K
Authentication2$20.6K
Input Validation2$2.5M
Reentrancy2$41M
Arithmetic1$563

Chains

Where the exploited contracts were deployed.

Ethereum20BNB Chain18Arbitrum6Base5Avalanche1Other1Polygon1
View as table
ChainIncidentsStated losses
Ethereum20$1.5M
BNB Chain18$5.9M
Arbitrum6$41.1M
Base5$2.6M
Avalanche1$2.4K
Other1$18.2K
Polygon1$3.1K

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
GMX v1 ExploitArbitrum$41M
FPC Token ExploitBNB Chain$4.7M
Arcadia RebalancerSpotBase$2.5M
SuperRare Staking ExploitEthereum$730K
NGP Token ExploitBNB Chain$493K

Every incident of the quarter

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

IncidentStated loss
GMX v1 ExploitGLP Share-Price Manipulation via globalShortAveragePrice$41M
FPC Token ExploitSell-Side burnLpToken() Drains the Pool's Own FPC Reserve$4.7M
Arcadia RebalancerSpotUnvalidated swapData → Arbitrary router.call$2.5M
SuperRare Staking ExploitPermissionless updateMerkleRoot() + Single-Leaf Merkle Forgery$730K
NGP Token ExploitSell-Fee Burns NGP Out of the Pair and sync()s, Collapsing the AMM Reserve$493K
Coinbase Fee-Account DrainConfused-Deputy via 0x Settler BASIC Arbitrary Call$300K
weETH LRT Minter ExploitUnprotected 0x03b79c24(address) Token Sweep$286K
RANT Token ExploitSelf-Transfer Triggers Un-compensated LP Reserve Burn$190K
D3X AI ExploitProxy exchange() Prices D3XAT From A Manipulable PancakeSwap Spot Reserve$136K
WETC Token ExploitFee-on-Transfer + skim/sync Reserve Drain$101K
EverValueCoin (EVA) ExploitStale-Price Orderbook Settlement Arbitraged Against a Live AMM$100K
YuliAI ExploitBuyback Priced off a Flash-Manipulated V3 Spot Price$78.8K
Equilibria (VaultEPendle)reward debt not updated on ERC20 share transfer, draining native-ETH rewards via fresh receivers$62.7K
Grizzifi ExploitSybil Milestone-Reward Farming via Self-Referral Chain$61K
WhereIsMyDragonTreasurefixed redemption reward larger than the recipe cost to mint a legendary card$47.5K
Stepp2p ExploitDouble-Refund via modifySaleOrder on an Already-Cancelled Order$43.8K
0x8d2e ExploitPermissionless uniswapV3SwapCallback Drains the Contract's USDC$40K
BaseCallback 0x8d2e… ExploitUnauthenticated uniswapV3SwapCallback Self-Transfer$40K
SWAPP Staking ExploitUnchecked transferFrom Return Value Lets a Free deposit Mint Staking Balance, Then emergencyWithdraw Drains the Vault$32.2K
Bebop JAM Settlement ExploitSignature-Bypass + Unconstrained Interactions Drain Stale Approvals$20.1K
Size Credit LeverageUp ExploitArbitrary External Call via GenericRoute Swap Drains User Approvals$19.7K
Kame Aggregator ExploitUnvalidated executor.call() in swap() Drains User Approvals$18.2K
LUXERA (XERA) ExploitDangling Infinite Approval to Multicall3 Drained via aggregate3$17K
VDS Exploitdeposit() Mints 5× VDS for AVD, Redemption Refunds AVD 1:1$11.1K
MulticallWithETH ExploitArbitrary-Call aggregate() Drains an Unlimited USDC Approval$10.5K
ABCCApp ExploitPermissionless addFixedDay() Vesting Time-Warp Drains the DDDD Reward Reserve$10.1K
Unverified proxy 0x6f7a drained via permissionless rebalanceAndAddLiquidity selectoranyone could push a victim's live token balance through its liquidity path$7.6K
BoJ Leverage Market cbBTC reserve index inflationflash-loan fee compounding against a near-empty aToken supply inflates the liquidity index to steal every listed asset$7.2K
Beefy ZapRouter arbitrary route executionarbitrary call() spent victim allowances via transferFrom$6.6K
Liquity V2 scrvUSD branch urgent-redemption arbitragepermissionless cherry-picking of undercollateralized troves with a 2% bonus$4.2K
0xf340 VRF-Wrapper ExploitPermissionless initVRF() Hijacks the LINK Payment Recipient$4K
Bebop JamSettlement self-taker arbitrary-interaction draincaller-supplied transferFrom calldata executed by the settlement contract against accounts that approved it$3.9K
Unverified Polygon swap router drained via fake Uniswap V3 poolattacker-supplied pair/callback trusted without authentication$3.1K
Liquity V2 ActivePool urgentRedemptionpermissionless extraction of collateral from shut-down undercollateralized troves at a +2% bonus$2.7K
BIFKN314 (ERC-314) flash-swap LP inflationreserve snapshot taken after swap-out, before repayment, lets a dust addLiquidity mint pool-dominating LP shares$2.4K
Pendle Reflectorreflect() operated on Reflector-held balances using caller-supplied, unvalidated market and limit-router addresses$2.3K
BaseSwapperUniswapV3 public swap drains its own token balancearbitrary public access + full-balance refund to caller-chosen recipient$1.8K
Unverified670471Balancer flash-loan callback forwarded to a victim that repays the loan with its own funds$1.8K
Empty Set Reserve stale fixed-order drainbuying COMP below market from a hard-coded maker/taker price$1.5K
Unverified6883 Fake-Pair Callback HijackUniswapV2 flash-swap callback trusts a freshly-created attacker pair and pays WETH into it$1K
BSC "DD" initcode-token drainunverified victim exposes arbitrary token-path swap using its own WBNB$700
MyCoinMaster missing-access-control on buyBYAdmin lets anyone mint MYC for free and drain the pool via swappublic function lacked an onlyAdmin guard present on every other privileged path$653
StrategyLlamaLendConvex share-accounting draina dust deposit minted strategy shares that redeemed for the strategy's entire Curve Lend position$563
Size Credit FlashLoanLoopingV1_7 Generic-Route Arbitrary Callthird-party token allowance theft via caller-controlled router.call(data)$533
Unverified-proxy USDT drain via recipient-only signaturesigned 5-min/recipient message did not bind victim, token, amount, or nonce$502
Hexotic (HEX-OTC) ExploitMispriced OTC Orders Arbitraged Against Uniswap-V3 Spot$500
AnyswapV4Router permit-fallback draintrusting a non-reverting permit() on a token that does not enforce itnot in dollars
AutoPooledTradingBot double-withdrawalwithdrawInvestment pays out from deposits without burning shares, so emergencyWithdrawAll pays the same position twicenot in dollars
PDZ / "TB Build" ExploitSpot-Price getAmountsOut Reward Inflationnot in dollars
PresaleV5 oracle manipulationflash-loan spot-price (slot0) read by the presale pricing function let an attacker buy tokens cheap and sell them at fair pricenot in dollars
UPENG burn+sync drainpermissionless burn(address,uint256) lets anyone torch a Uniswap-V2 pair's token side, then sync() commits the manipulated balance as reservesnot in dollars
WXC Token ExploitBurn-From-Pool + sync() "Phantom Reserve" Drainnot 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.