Hacks

Reproduced Exploits

Root cause, vulnerable code, attack walkthrough, and a standalone Foundry PoC for each incident — an indexed library of reproduced on-chain exploits across EVM chains.

Statistics and quarterly reports

Indexed

2341 / 2341

Source:Exploit reproductions, traces, and methodology adapted from DeFiHackLabs by SunWeb3Sec.SunWeb3Sec/DeFiHackLabs
2341 matching incidents
BNB ChainOct 2026

AlpsCon AI Trade Hub — a public Hardhat address is whitelisted, and a zero entry index pays the historical USDC index

logic/reward-calculationaccess-control/broken-logiclogic/missing-check

Loss · On-chain net 152,295.3625 USDC to the attacker EOA (header of test/AlpsCon_exp.sol). The…

AlpsCon's AI Trade Hub sells ALPS "service credits" and later pays USDC "service results" from a per-share index. Reward entrypoints are gated by onlyVerified, which is…

Read the analysis
EthereumOct 2026

Argent relay modules — a public owner signature is replayed, and the recovery deadline can be wrapped into the past

auth/signature-replay

Two Argent-style wallets are drained, in the test's account of the incident, by relaying signatures that have been public since 2020 and 2021. The execution module's exe…

Read the analysis
EthereumOct 2026

BiFi USDT — one idle gap of 264,060 blocks is reapplied at a live utilization the attacker sets

logic/reward-calculationlogic/incorrect-state-transitionlogic/missing-check

Loss · 165,575.149730 USDT surplus after a 40,499,999.999997 USDT Morpho flash loan is repaid in…

The BiFi USDT market had not been touched since block 25,946,196. Rolled to the profit block, that is 264,060 blocks, about 36.7 days output.txt:29–output.txt:32. BiFi a…

Read the analysis
PolygonOct 2026

BitBay StableVault — withdraw on an empty position pays the caller the whole vault, uncapped by shares

logic/missing-checkdefi/share-accountingdefi/price-manipulation

Loss · 14,838.466608989135865711 DAI — the vault's entire idle balance, sent to the attacker by…

UsdcDaiV4Vault keeps its funds as a single Uniswap v4 DAI/USDC position. withdraw(shareAmount, deadline, addDust) is supposed to burn shareAmount and return the caller t…

Read the analysis
EthereumOct 2026

EtherVista — swap's constant-product (K) check multiplies two uint112 reserves, so the invariant overflows and the pool drains

arithmetic/integer-overflowdefi/invariant-bypassaccess-control/privileged-role-takeover

EtherVista is a Uniswap-V2-style AMM (token0 = WETH, token1 = VISTA). Its swap ends with the stock-looking constant-product check require(balance0 balance1 >= reserve0 r…

Read the analysis
EthereumOct 2026

ETHMACOAPY — a base-set donation makes zero-fee actualizeFee ceil unitShares from 12253 to 12264

arithmetic/rounding-directionlogic/fee-calculationlogic/missing-check

Loss · 4.047988247781965824 WETH on this tx output.txt:416. The test header records a second tx…

ETHMACOAPY is a legacy Set Protocol rebalancing set. Its verified RebalancingSetTokenV3 source matches the contract drained earlier the same day at 0x54e8…a6bE: same act…

Read the analysis
AvalancheOct 2026

Fence tranche pool — the UTC rollover credits a scheduled principal payment that was never paid, and draw pays it again

Untagged

Loss · 1,013,353.611686 USDC (1013353611686), the pool's entire balance, on the second draw outp…

A Valinor Digital / Fence Finance tranche pool on Avalanche lets anyone open a facility, name themselves borrower, fund principal, and draw it back. Cycle 1 is a wash: A…

Read the analysis
EthereumOct 2026

FlashLoopAdapter — caller self-attests as the Safe, then swapRouter.call runs the victim

access-control/missing-authdependency/unsafe-external-callinput-validation/missinglogic/missing-check

Loss · 114.096151469674448809 WETH left on the attacker after repaying a 1,400 WETH Morpho flash…

FlashLoopAdapter is a Zodiac-style module for looping an Aave position through a flash loan and an aggregator. open / close both enter _start, which authenticates with:

Read the analysis
BaseOct 2026

GoldPesa GPXHooks — TAKE_PAIR settles the shared unlock, so another position's debt cancels the burn credit

logic/missing-checklogic/state-updatedefi/flash-loan-attack

GPXHooks owns the GPX/USDC Uniswap V4 liquidity. Any swap whose beforeSwap sees block.timestamp - lastRebalance >= 1 hours calls reBalanceRoutine() → checkRebalance → re…

Read the analysis
EthereumOct 2026

KolanHook — expired buy windows settle on the pool's own spot, then the escrowed ETH is bought back with no price limit

oracle/spot-priceoracle/price-manipulationdefi/slippagelogic/missing-check

Loss · Attacker ETH after the flash loan is repaid: 1.280491451506671761 output.txt:7, output.tx…

KolanHook escrows ETH for timed "buy windows" on a single ETH/KLN Uniswap v4 pool (fee 0, tick spacing 10, currency0 native ETH, currency1 KLN 0x2CADc4F2660Bb77a118b0e74…

Read the analysis
EthereumOct 2026

MakerDAO flip-keeper — ungated 0x8804d1de hopes a caller-supplied worker, then exits 200 WETH

access-control/missing-authdependency/unsafe-external-calllogic/incorrect-state-transition

Loss · 200 ETH exactly (200 WETH unwrapped). output.txt:196. Alert figure ~$538K. Not a Maker co…

This is not a MakerDAO Vat, Flipper, or GemJoin bug. Those contracts did what they are supposed to do. The loss is a dormant third-party liquidation keeper.

Read the analysis
PolygonOct 2026

MALT sLP — below-peg recovery deposits treasury DAI into the pair, and swap counts it as the caller's input

logic/missing-checklogic/incorrect-order-of-operationsdefi/price-manipulation

The MALT stablecoin's own market is a Uniswap V2-style pair (token0 = MALT, token1 = DAI) whose swap is not the stock two-step pair. Before it pays amount0Out / amount1O…

Read the analysis
AvalancheOct 2026

Safe approval squat — unlimited ERC-20 allowances point at an empty CREATE address anyone can occupy

Untagged

Loss · The Safe's entire balance of four tokens output.txt:357. 3,078,123.681646 USDC (307812368…

On 2026-03-07 the Safe approved type(uint256).max of USDC, WAVAX, WETH.e, and BTC.b to 0x3725bD4D…. At block 98,603,854 that address still has no code, and the four allo…

Read the analysis
EthereumOct 2026

Set Protocol — zero-fee actualizeFee ceils unitShares from 4927 to 4928 and over-redeems the base set

arithmetic/rounding-directionlogic/fee-calculationlogic/price-calculation

Loss · 5.083148662083682304 WETH pulled out of the rebalancing set after repaying the flash loan…

Set Protocol v1 prices a rebalancing set in units of its currentSet. unitShares is how many base-set wei back one naturalUnit (here 1e6) of rebalancing-set supply. Issua…

Read the analysis
BaseOct 2026

Slice FundsModule — Unbacked Release From a Caller-Chosen Source

access-control/missing-authlogic/missing-validationdependency/unsafe-external-call

Loss · 8.716935563284127413 ETH and 19,820.734001 USDC to the exploit contract (output.txt:6–out…

Slice’s FundsModule is the settlement contract for Slice stores. One permissionless entry point takes a list of source contracts, a recipient, a token (address(0) means…

Read the analysis
BNB ChainOct 2026

TIPMine — permissionless mine() burns TIP out of the Pancake pair and sync() leaves the SOL reserve in place

access-control/missing-authlogic/incorrect-state-transitionlogic/missing-check

Loss · Reconstructed profit 706.253909658913182860 SOL output.txt:12, output.txt:395. On-chain t…

TIPMine is the public "mine" function for the TIP token. Once a day it releases 2% of the unmined supply. On the first call, lastMineTime is 0, so the timer is already o…

Read the analysis
EthereumOct 2026

UNCX Smart Token Vesting — Shared-Pool Share Double-Debit

logic/state-updatelogic/incorrect-state-transitionlogic/missing-check

Loss · This transaction keeps, after every flash loan is repaid: 55,601,598.708417972560603048 E…

UNCX Smart Token Vesting V2 keeps every vesting of a given ERC-20 in one contract balance and tracks ownership with internal shares. release() pays a fraction of that wh…

Read the analysis
EthereumOct 2026

X100 Senate — two flash-bought seats pass a same-block vote that dumps treasury X into the attacker's pool

Untagged

X100's treasury is governed by a three-seat Senate. A seat is "freeze X and call applyForSenate". There is no timelock between propose, vote, and execute, and the propos…

Read the analysis
EthereumOct 2026

X7 Finance (X7Pioneer) — empty-array claimRewards([]) re-accrues the same donated ETH without advancing the watermark, inflating the per-token reward until one NFT drains the whole pool

logic/missing-state-updatelogic/incorrect-order-of-operationsdefi/reward-accounting

X7Pioneer is an airdropped ERC-721 whose holders share any ETH sent to the contract. claimRewards(uint256[]) first accrues address(this).balance - lastETHBalance into to…

Read the analysis
EthereumOct 2026

Yapeswap — Zero-Quorum Governance Capture, Then a Fake Yearn Vault

governance/proposal-manipulationlogic/state-updatelogic/missing-validation

Loss · Reported about $21.9K (SlowMist, 25 Oct 2026), including Yearn positions this PoC does no…

Yapeswap is a Uniswap V2 fork whose pairs farm a share of reserves into a Yearn vault chosen by YapeFactory.registry. Who may change that registry is feeToSetter, and at…

Read the analysis
EthereumOct 2026

zkLink Nova — Transient finalizeMessageHash Reused to Forge a Batch Root

bridge/replaybridge/missing-validationlogic/incorrect-state-transition

Loss · Reported about $783K across two exploit transactions. This PoC is the first transaction o…

zkLink Nova finalizes L2-to-L1 withdrawals by Merkle-proving them against l2LogsRootHashes for a batch. Only a gateway-authenticated message may call syncBatchRoot. The…

Read the analysis
BNB ChainSep 2026

BeatXswap LiquidityVestingConvert — UniV3 slot0 spot oracle

oracle/spot-priceoracle/single-sourceoracle/price-manipulationlogic/price-calculation

Loss · ~2.98M–3.07M BTX (~$63.7k–$77.5k). Live attacker net 63,704.84 USDT. Teaching PoC drains…

BeatSwap's LV Convert lets users deposit USDT. 75% goes to a treasury; 25% is paired with protocol-owned BTX and minted as a Pancake V3 LP. The BTX amount is sized by _c…

Read the analysis
BNB ChainSep 2026

BonfireSwap transfer spends any holder's standing allowance — missing caller check on the router's force-sell

access-control/missing-authlogic/missing-checkinput-validation/missing

Loss · Full incident ~66.08 WBNB (~$47–50K) across ~41 holders. This PoC, the five largest victi…

BonfireSwap is a custom BSC router for the reflective BONFIRE token (0x5e90253f…5590, 10% tax / 5% reflection, pair 0xD3F478F0…38f2 with WBNB). Holders who had used the…

Read the analysis
BaseSep 2026

Cozy Finance v2 — UMA Optimistic Oracle fake YES drains the protection Set

oracle/missing-validationoracle/missing-circuit-breakerlogic/missing-checkaccess-control/missing-auth

Loss · ~$160K USDC.e. PoC: Set drained 158,148.088467 USDC.e; attacker net 165,718.768963 USDC.e…

Cozy v2 protection markets pay out if a UMA Optimistic Oracle request settles YES. Anyone may proposePrice. The trigger's priceProposed callback only requires proposedPr…

Read the analysis
EthereumSep 2026

DAOstack Genesis Alpha — permissionless newOrganization mints reputation and drains the avatar

access-control/missing-authgovernance/proposal-manipulationlogic/missing-validation

Loss · 4.025 ETH, the avatar's entire treasury. Attacker balance log goes from 0 to 4.0255770215…

Genesis Alpha is a DAOstack DAO. Its avatar (0x7b11…6DB0) holds the ETH treasury. Its Reputation token (0x6256…5BF9) is the voting weight. Both are owned by one shared U…

Read the analysis
BNB ChainSep 2026

DEX router drain — unverified V3 callback trusts a fake pool and transferFroms any approver

access-control/missing-authinput-validation/missinglogic/missing-check

Loss · Incident ~62.28 WBNB from 29 victims. This PoC drains a representative 3 (OCEAN, Kandura,…

The router exposes a permissionless swap entry (selector 0x33411b5e). Routes carry an attacker-chosen pool. The router calls pool.swap(0x128acb08) without checking that…

Read the analysis
BNB ChainSep 2026

DHC Award vault — claimed reward can be reset and paid again from the shared pool

logic/incorrect-state-transitionlogic/reward-calculationlogic/missing-check

Loss · On-chain 71,851.02 USDT. PoC reconstruction 71,100.63 USDT (single-pair dump vs original…

DHC (DeHealth / RedSonic-style "Award" staking) records a fixed reward in createAward with no per-award locked collateral. participateAward does not require the award to…

Read the analysis
PolygonSep 2026

DoinGud acceptOffer pays the escrow twice — amount == 0 skips offer deletion

logic/incorrect-state-transitionlogic/missing-checklogic/wrong-condition

Loss · 35,380.154566 USDC net output.txt:591. Two payouts of 35,486.935717 minus the 35,593.7168…

DoinGud's Polygon marketplace is an EIP-2535 diamond. The escrow USDC sits on the diamond 0xE3A161…eD6A. The bidding logic lives in an unverified facet 0x123aAFC8…, whic…

Read the analysis
EthereumSep 2026

Enso Finance strategy vault — short Uni V3 TWAP overvalues FARM deposits

oracle/manipulable-twaporacle/spot-priceoracle/missing-circuit-breakerlogic/price-calculation

Loss · Headline ~5.6 ETH spot of UNI/AAVE/MKR pulled, net of 0.683 WETH spent on FARM. PoC reali…

The Enso strategy vault mints deposit shares as:

Read the analysis
EthereumSep 2026

ether.fi Liquid / Veda AtomicQueue — Unauthenticated solver Drain

access-control/missing-authlogic/missing-validationdependency/unsafe-external-call

Loss · 14.445541086626480232 liquidETH + 7.047848 USDC in the PoC (14445541086626480232 wei + 70…

1. ether.fi Liquid withdrawals on Ethereum share a Veda AtomicQueue (AtomicQueue.sol). Users who want to sell liquidETH (or other vault shares) for a want asset approve…

Read the analysis
EthereumSep 2026

Flamincome — spot-priced, permissionlessly-inflatable strategy NAV drains the proportional-share YUSDT vault

oracle/spot-priceoracle/price-manipulationlogic/price-calculationaccess-control/missing-auth

Loss · 344,751.209366 USDT net attacker profit, from 597,352.101480 USDT gross loss of the Strat…

1. VaultYUSDT is a plain proportional-share vault: deposit(a) mints shares = a totalSupply() / balance(), and withdraw(s) returns balance() s / totalSupply(), where bala…

Read the analysis
PolygonSep 2026

GaslessReservoirEnabler — whitelisted WETH plus arbitrary module.call spends every standing approval

access-control/missing-authdependency/unsafe-external-callinput-validation/missing

Loss · This tx: 8.7199 WETH from 466 victims (~$23.8K at the fork-block price; the ~$23K alert).…

GaslessReservoirEnabler is a Polygon meta-transaction helper. The intended path is EIP-712: a user signs, a relayer calls executeMetaTransaction, and _msgSender() is the…

Read the analysis
BNB ChainSep 2026

GDCToken — sell-tax credits 30% to the pair then burns 100% from it and sync()s

logic/fee-calculationlogic/incorrect-state-transitionreentrancy/single-functionaccess-control/broken-logic

Loss · Pair drained 38.075473326480291171 WBNB (~$27k). PoC attacker profit 35.15333822653155477…

GDC is a BSC “deposit / deflation / node-reward” token paired against WBNB. Ordinary buys from the pair revert BuyingProhibited. Sells into the pair run swapSellAward: 7…

Read the analysis
BaseSep 2026

Internet Token swapV3 mints arbitrary INT to a fake pool — validateSupply is burned around

reentrancy/cross-contractlogic/missing-validationaccess-control/missing-authlogic/incorrect-state-transition

Loss · Mint 925,411,678.379023085745037207 INT, dump 161,265,976.195260022578593802 INT for 5.84…

Internet Token (INT, RewardToken 0x968D6A…eC19) on Base mints only from addresses that hold TOKEN_MINTER. LiquidityUnifier holds that role. Its swapV3(address token, add…

Read the analysis
BNB ChainSep 2026

Likwid leverage == 0 borrow — frozen pair reserves re-quote the same BNB on every collateral add

logic/missing-state-updatedefi/price-manipulationlogic/incorrect-accounting

Loss · 74.310377807370642618 BNB taken from LikwidVault in this transaction (reported ~74.31 BNB…

Likwid margin positions can be opened in two modes. leverage > 0 is a real leveraged swap: it writes delta.pairDelta, and the vault's marginBalance moves the pool. lever…

Read the analysis
BNB ChainSep 2026

LPBonus (MSN LP-reward pool) — reserve-inconsistency between reward accrual and withdrawal lets a flash-manipulated reserve inflate an LP's FIST claim

logic/reward-calculationoracle/price-manipulationdefi/fee-manipulationdefi/flash-loan

Loss · Final attacker USDT balance 92,633.859396071632955691 (≈ $92.6k). The exploit's net new U…

1. LPBonus is an LP-reward pool for the MSN token. Its reward callbacks are all gated require(msg.sender == MSN) — they are hooks the MSN token fires from inside its own…

Read the analysis
EthereumSep 2026

Mutual Uniting System (MUS) — a first-deposit bonus is paid twice and never capped, so a fresh deposit-withdraw returns more ETH than it put in

logic/reward-calculationlogic/missing-checkaccess-control/missing-auth

Loss · 0.400167773791578324 ETH net over-extraction for one fresh deposit-withdraw cycle — repro…

1. MUS is a "pack"/round Ponzi-matrix contract. deposit{value: D}() and withdraw(uint256,uint256,bool) are permissionless — no owner/caller check anywhere. 2. For a fres…

Read the analysis
PolygonSep 2026

Nimiq HTLC handlers — OpenGSN execute() ignores the signature and opens an HTLC as the liquidity wallet

access-control/missing-authauth/signature-bypassbridge/htlc

Loss · 50,463.792096 USD of 6-decimal stables: 26,130.641710 USDC + 24,332.489269 USDT0 + 0.6611…

Nimiq's Polygon swap handlers custody HTLCs for USDC, USDT0, and bridged USDC.e. The liquidity wallet had approved both handlers for unlimited token. A direct open() wou…

Read the analysis
EthereumSep 2026

Notional V1 escrow — unbacked fCash mint overflows uint128 ladders and settles as cash

arithmetic/overflowlogic/missing-validationinput-validation/missing

Loss · $1.727M — 69,257.372677950923155658 DAI + 1,658,524.864122 USDC (exact) output.txt

Notional V1 books an ERC-1155 fCash transfer as a minted pair: a CASH_PAYER (debt / short, assetType 2) on from and a CASH_RECEIVER (claim / long, assetType 3) on to — e…

Read the analysis
EthereumSep 2026

OMNI404 (O404) — ERC-404 transfer(id≤50) + whitelist rounding drain

input-validation/wrong-typearithmetic/roundinglogic/incorrect-state-transitiondefi/fee-manipulation

Loss · ~2.4–3.02 WETH. Main tx +2.427 WETH; three drain() follow-ups in the same block. Teaching…

O404 is an ERC-404: one contract, ERC-20 balances in 1e18 units and up to 50 ERC-721 ids. transfer(to, valueOrId) guesses intent from the magnitude of the second argumen…

Read the analysis
BNB ChainSep 2026

ORB addPoolAndSell — BNB refund before the sell, then burnLP grinds the pair and a last swap takes the WBNB

reentrancy/cross-functiondefi/reserve-manipulationlogic/incorrect-order-of-operations

Loss · 45.302221034270454423 BNB net to the attacker after repaying every flash-loan and Venus l…

Sending BNB to ORBToken is an implicit sell. receive() max-approves the sender to ORBCore and calls addPoolAndSell{value: msg.value}(msg.sender). On the sell branch (0.0…

Read the analysis
EthereumSep 2026

Order factory — permissionless createOrderForBuyer sets attacker as seller and aborts the buyer's ETH

access-control/missing-authaccess-control/missing-signerlogic/missing-check

Loss · Incident ~24.7 ETH. This tx: 20.247 ETH from 5 buyers (10.05 + 5.05 + 3.05 + 1.547 + 0.55…

The factory's order-creation entry (selector 0xbde886fc, name unknown — factory unverified) lets any caller create an order "for" a buyer. It checks getState(buyer) == 1…

Read the analysis
BNB ChainSep 2026

Pancake V3 Swap Helper — Signed Swap Delta Misread as the WBNB Payout

logic/missing-validationlogic/incorrect-state-transitionlogic/price-calculation

Loss · 1.648868884526157960 BNB after the live tx fee (1,132,330 gas × 0.05 gwei = 0.0000566165…

0x222C8580eaA32f6f5a728bda0129CFA485eCc52D is an unverified helper that pulls an ERC-20, swaps it for WBNB on Pancake V3, unwraps WBNB, and forwards BNB to a caller-chos…

Read the analysis
HyperEVMSep 2026

PrimeFi verifyReport — permissionless stale Chainlink Data Streams report inflates PRFI and empties the WHYPE reserve

oracle/stale-priceaccess-control/missing-authdefi/undercollateralized-borrowauth/signature-replay

Loss · 425.521620381705945356 WHYPE borrowed out of the lending reserve (aWHYPE balance after th…

PrimeFi's HyperEVM market prices PRFI through DataStreamConsumer, a Chainlink Data Streams middleware. Anyone may call verifyReport. The function does not skip the signa…

Read the analysis
EthereumSep 2026

Reddio RedSonic Vault — permissionless registerErc20(stETH) double-counts one balance

logic/price-calculationaccess-control/missing-authlogic/missing-check

Loss · 9.253090281137114614 ETH (~$23K; reported ~9.25 ETH) output.txt

RedSonic Vault (EIP-2535 diamond) prices rsvETH from getTotalAssetBalance, which for the Lido leg is IERC20(stETH).balanceOf(vault) — no per-share-class accounting. regi…

Read the analysis
EthereumSep 2026

rsETH Safe drain — Router multicall treats a self-call as authorized and the enabled module delegatecalls a recipe

access-control/auth-bypassauth/caller-checklogic/self-call

Loss · 2,899.999999999997756821 aEthrsETH pulled from the victim Safe (~2,900 rsETH, reported ~$…

A whale Safe held 53,402.655157601774360853 aEthrsETH and had enabled a custom module, 0xeA18B13d.... That module will act on the Safe when the Router calls it. The Rout…

Read the analysis
EthereumSep 2026

Secured.Fi — same-block self-trade pins getMarketUnitPrice at par and drains WBTC

oracle/price-manipulationlogic/price-calculationoracle/missing-circuit-breaker

Loss · Incident ~$104K across bots. This PoC: 0.89899004 WBTC (~$72K) from TokenVault output.txt

Secured.Fi values lending-order-book collateral from getMarketUnitPrice(). Within a block that is:

Read the analysis
BNB ChainSep 2026

SKYDAO sell path — controlburn + sync() before the net credit desyncs the pair reserve

logic/incorrect-order-of-operationslogic/state-updatedefi/price-manipulation

Loss · 183,482.883991401873856911 USDT leaves the SKYDAO/USDT pair output.txt:256. One wei of US…

SKYDAO is a fee-on-transfer token (35% tax) paired with USDT on PancakeSwap V2. A sell (to == pair) does not just take a tax. It calls the unverified pool controller's s…

Read the analysis
SpiralHookV2 — Uniswap V4 spot getSlot0 prices borrow collateral, and noSameBlockSwap keys the guard on tx.originStartale ERC-7579 accounts — transient INIT_SLOT stays set after the proxy constructor, so initializeAccount can be called again in the same transactionSymbiosis BridgeV2 — signed receive mints unbounded syBTC (BSC)The Red Village — a public request forwarder is a confused deputy that upgrades a UUPS proxy to attacker codeUnifi Protocol — fake LP drains UP rewards for ~5.86 BNB (BSC)Yam Finance — hardcoded GovernorAlpha quorum on a dormant DAO, then masterFallback drains the expired UMA farmsZentra Finance — Custom AToken _burnScaled silently caps oversize burnsAjna Finance — self-controlled liquidation via bucketTake / take accountingAllbridge CCTP — Phantom Deposit on Base (~$191K)Arrakis Finance G-UNI — Uniswap V3 mint/burn sandwich with no same-tx snapshotArrakis V1 G-UNI — Uniswap V3 spot-priced mint/burn sandwich (typed reconstruction)Atomic (AtomicLending) — Signature Replay + Flash-Loan Spot Manipulation on Arbitrum (~$29,984)Balancer V1 BPool — joinswapPoolAmountOut rounding drain (empirical reconstruction)Balancer V1 BPool joinswapPoolAmountOut rounding — mint BPT for 1 satoshi WBTC after dust compressionBase Unverified Arbitrary CALL — Allowance Drain via 0x42be3129CashCowCoin (CCC) — sell() burns LP inventory then sync(), draining the CCC/WBNB pairEnjin "Crypto Items" — unprotected registry initialize() → manager takeover → delegatecall-body injection drains the ERC-1155 item reserveFalcon Heavy (FH) — Sell Path Burns FH From the Pancake PairFlashstake V2 — Unit-based instant rewards dump into a mispriced FLASH/WETH poolFloat Protocol Hypervisor — Uniswap V3 spot-priced deposit/withdraw sandwichFox Market — LP-bond mint priced from a manipulable FOX/USDT spotLpdFi — Spot-Oracle Price Manipulation Drains Protocol LP via claimInterestMOKE LP Dividend Drain — Stale userLPRecord Double-Claim via Unsynced LP TransfersMoonwell MAMO Thin-Market Oracle Manipulation — Borrow Real Assets Against Inflated CollateralMore Markets (Flow EVM) — Ankr bonded LST + 97% E-mode drains the WFLOW reserveNEX/AIC FoT Skim — Router Double-Transfer + Sell Fee Lets skim() Empty the PairPanther Protocol (Base): unopposed self-answered governance proposal captures the SafeReflexer GEB — unauthenticated GebProxyActions.quitSystem drains library-owned SAFEsStrongBlock Governance Takeover — Abandoned Governor → Malicious Upgrade → Pool DrainTectonic TONIC Thin-Oracle Collateral Manipulation — Over-Borrow Against Inflated Spot MarkTerm Finance Governance Takeover — Thin gtmvETH Majority → Zero Delay Cooldown → Yearn Vault DrainThe Sandbox SAND OFT — approveAndCall hijacks LayerZero delegate and mints unbacked SANDThe Sandbox SAND OFT (Base) — LayerZero Delegate Hijack via approveAndCallUnistreets LaunchpadFactoryAuto — Arbitrary Calldata Injection → V4 LP Burn (2-tx, 2-victim confused deputy)USM / FUM (Minimalist USD) — Flash-loan fund/defund extracts ETH buffer via inflated mid-priceZKPanther (Base) — Reality.eth governance module → proxy upgrades → ZKP drainBarnBridge SMART Yield — Governance Capture of an Abandoned DAO → Controller Swap → Approval DrainBonzo Lend / Supra Oracle — BLS Zero-Signature Price ForgeryCrowdRingCircle Exploit — Premature sync() Turns a Sell-Tax Burn into a Free Reserve DrainDrips Network DaiDripsHub give() — uint128 → int128 cast flips fund flowEdel xStock — ERC4626 convertToAssets Donation Inflates Collateral and Drains ReservesHinkal Shielded Pool — Legacy Note Multi-Nullifier Double-SpendIndex Coop ExchangeIssuance TOCTOU — Unlocked SetToken Units + Malicious Manager Hook Drain Residual InventoryLien Finance: crafted bond payoff over-valued by the pricerLULA: pre-accumulated reward redeemed against a manipulable poolLumi Finance (Sodium ERC-4337 account) — Signature-Bypass DrainNFT Auction Marketplace Exploit — Settle-Then-Cancel Double Payout Drains the Escrow PoolPerpetual Protocol (Curie) Exploit — Missing Access Control on OrderBook.updateFundingGrowthAndLiquidityCoefficientInFundingPayment()Pro Token: transfer-hook reward-swap self-dealing drains the pairProjekt Reward Vault: fake-purchase allocation from an unverified balance deltaRWT Token Exploit — Owner-Gated burn() Lets a Role-Holder Delete an AMM Pair's Own ReserveSodium Smart Wallet Exploit — ERC-4337 Session-Key Validation Bypass / EntryPoint Gas-Deposit GriefingSummer.fi FleetCommander — NAV Inflation via Empty-Ark Donation of Undervalued vgUSDCUnprotectedArbBot: ungated forwarder drains a pre-granted allowanceA 3,000 deposit into a 0.60 redemption pool mints par shares and moves 750 to the old LPA new STBL deposit burns the pool NFT and destroys 100 of pending LP yieldAIDCToken sell-burn drains the AMM pair reserve — deflation logic burns tokens from the LP without a counterpartAISOTH Presale Exploit — Same-Tx Buy+Claim of Below-Market Inventory, Dumped Into the Live AIS/USDT PairAmbient (CrocSwap) Exploit — Native-ETH Surplus Settlement Drained via a Self-Dealt Grid-Walk + Range HarvestAn STBL withdrawal splits the pool NFT and orphans 500 of LP yieldATM LP-Burn Exploit — Misplaced LP Tokens Are Burn-Redeemable by Anyone via PancakeV2 burn()ATM Token Exploit — Per-Address Anti-Whale Guards Sidestepped by 30 Sybil "Farmer" ClonesATOHook Solady ReentrancyGuard Storage Collision — Inflated getReward() DrainAztec Connect (V3) Exploit — numRealTxs proof-vs-settlement coverage mismatchAztec Escape-Hatch Exploit (variant 2) — Unconstrained Inner proof_id WitnessAztec V1 Escape-Hatch Exploit — Unbacked Withdrawals via Verifier-Trusted Rollup ProofsBOSS Exploit — Helper Mint/Burn Drains the Pair's BOSS Reserve, then a Degenerate-Reserve Swap Loop Empties the USDT SideBY Token Exploit — Permissionless triggerAutoBurn() Pool-Reserve DrainCook Finance Issuance — Caller-Chosen Weightings Drain CKToken Components via Thin Pancake PoolsDIP Exploit — Fee-on-Sell Transfer + skim/sync Reserve-Collapse on the DIP/AIC PairDLMC Exploit — Reserve-Derived livePrice Self-Inflation Drains the Token's Own USDT BackingDTXT Exploit — 1-Wei USDT Donation Misclassifies a Sell as a Liquidity Add (Fee Bypass + Stale-Reserve Drain)Gnosis Pay / Zodiac Delay — moduleTxSignedBy ignores EIP-1271 staticcall successJaredFromSubway MEV Bot — Residual ERC-20 Approvals to Untrusted Bait WrappersJB Exploit — Gateway-Driven sell → PoolBurn(pool) + sync() AMM-Reserve Drain (Venus-leveraged)LBP (Little Boy Plus) Exploit — Reserve-Manipulated LP-Credit Inflates Mining Rewards Minted Into the PoolLixir vault permit signature bypass — any holder's vault shares drained with a forged signatureNovaBox Exploit — Stale Dividend Checkpoint on Join + Constructor extcodesize BypassOcean Protocol BPool / SideStaking gulp drain — pool internal records desynced from real token balance, harvestable via single-sided joins + exitsOLPC Exploit — Owner decimalsValue Misconfig Amplifies Pair-Side Burn → amountIn=0 Supporting-Fee DrainRoyalRoyalties Exploit — Zero-Amount ERC-1155 Batch Transfer Inflates tierBalanceOf 100×STBL redemption pays the pool remainder to a 1-unit withdrawSTBL redemption: the first iDeposit stores a wrong-asset NFT and locks 1 VALSTBL vault: permissionless claim() strands 1000 reward tokens before claimYieldSTBL: mergeLot burns the NFT before the 40 of accrued yield can be claimedThetanuts Exploit — Zero-Cost Index-Vault mint() via Rounding-Down Component DepositsThetanuts Finance Exploit — Integer-Division Truncation in mint() After the Vault Is Drained to ~0 totalSupplyTOP Exploit — Aragon Instant-Execution Governance Self-Mint + Balancer BPool DrainVault4626 — Donation of Non-Asset WETH Inflates totalAssets() and Is Paid Out on redeem()WHALE Exploit — Flash-Inflated AMM Reserve → Mining-Hashrate Over-Credit DrainA seller installs an OnChainLab executor before listing and drains 5 ETH after the buyer takes the NFTAdshares Bridge Exploit — Compromised Minter Key Fabricates Cross-Chain MintsAROS Exploit — Leaked claimSigner Key + AMM-Reserve Drain via Signed ClaimsAurellion Labs Diamond Re-Init Drain — Unprotected initialize → diamondCut pull/sweepBlastFOMOVault claimBonus clone-churn drains BNB bonus poolBoostHook Leveraged Long Exploit — Spot open without post-open solvency + MAX_LIQS_PER_BLOCK cascade capDxSale Liquidity-Locker Exploit — Stealthy Ownership Takeover + Privileged Drain (~$7.3M BNB)Early Armada redeemers take Carol's 300,000 USDC because her unclaimed ARM is dropped from the denominatorEkubo Protocol Exploit — Flash-Accounting pay() Funded From a Victim's Standing ApprovalElevateFi Exploit — Fixed-USD Staking Packages Priced from Spot DAI/EFI ReservesFractal Protocol Exploit — Stale-Price / Retroactive-Yield Arbitrage via Permissionless compute()HeisenbergHook Fee Path Hijack — Unrestricted poolKey overwrite + permissionless processFees/processBurnHuma Finance Exploit — Evaluation-Agent Approval Bypass via refreshAccount()INK Finance Exploit — Flash-Loan-Inflated, Permissionless claimPayroll() Treasury DrainJoe Agent (JOE) Exploit — removeLiquidityViaContract Reentrancy on Pooled LP CustodyLegendaryMoneyMonNft Exploit — cliamRewred() Signature Bypass via ecrecover → address(0) == adminMAP Protocol Exploit — Unverified retryMessageIn Forges a Cross-Chain Message to Mint 1e33 MAPOMetaSea (SEA Token) Exploit — redeemPosition() Over-Pays From an Unguarded Reward DistributorMolecule: a permissive executor rebinds RootValidator and drains the accountMure Distribution Exploit — Attacker-Controlled source Forges Both Verifier and SignatureMystic Finance: instant withdraw leaves currentWithheldETH unchanged and pays the fee outNew Market Trading Exploit — Payload-Forgery Drain via Axelar "Express" Path on a Gnosis Safe ModuleONTR Token Zero-Owner onlyOwner Free Mint → Pancake WETH DrainRenegade Darkpool Exploit — Re-Initializable Proxy → Attacker-Controlled delegatecallSat1Hook Forensics — Grindable Hook Identity, but No Confirmed Protocol LossSharwa Margin Trading — Uniswap-V3 spot-price oracle used to value NFT collateralSKP Token Exploit — Owner Backdoor ownerBurnLiquidityPairTokens() Reserve Drain → Collateral Price InflationSKP/USDT Exit-Scam Drain — Pre-Positioned 96.8%-of-Supply "Whitelist" Treasury + Pool DrainSQ Token Staking Exploit — Hardcoded Owner Backdoor + Self-Minting Staking RewardsSquid Router Module Exploit — Caller-Supplied Delegate on the Permissionless Axelar Express PathSyntetika: realizeLosses reverts, so a redeemer is paid 200 of a 270 custodyTesseraSwap Exploit — CEI Violation: Treasury Pays the Output Token Before Collecting the Input TokenTrustedVolumes Exploit — Permissionless Signer Registration + Wrong-Key Authorization Drains an RFQ Settlement ProxyVerus–Ethereum Bridge Exploit — Forged Cross-Chain Import With No Source-Amount ValidationWUSD Exploit — Sybil-Farmable _englove() Reward Mint + Thin-Pool GLO DrainYSDAO Exploit — Balance-vs-Reserve "Add/Remove Liquidity" Tax Bypass + Permissionless Staking.sync() Price Pumpa152 Authorized-Spender Allowance Drain — privileged spender abused to pull any user's approved tokensBlockchain Bets ERC-1155 stake/transform inflates redeemable BCB → UniV2 dumpGiddy YieldBasis VaultV3 — EIP-712 signature only binds swap data, not token/amount/aggregatorJUDAO sell-hook reserve drain — token transfer hook burns liquidity directly from its own DEX pair, desyncing the AMM reserves the attacker then arbitragesJuicebox REVLoans Exploit — Trust-on-First-Use of a Caller-Supplied Loan Source Inflates Borrowable SurplusKipseli PropAMM Exploit — USD-Scale Quote Misread as cbBTC Token UnitsMONA / LisaVault Exploit — Self-Referral Node Farming + Insider LP DrainPerpPair Exploit — Self-Dealt LP/Trader Pair Inflates Curve-Priced PnL out of the Shared VaultQNT Reserve EIP-7702 + Permissionless BatchCall.batch() DrainRWAVault Exploit — Overridden ERC4626.withdraw Drops the Allowance SpendSaturn Protocol (sUSDat) — Withdrawal Freeze via strcBalance/vestingAmount Desync + 33% PROCESSOR ExtractionsAVAX Rebalancer arbitrary-call drains victim credit delegation — permissionless target/data execution from a delegated Aave borrowerSingularity dynBaseUSDCv3 Exploit — totalAssets() Inflation via a Mis-Configured (Fee-Tier-42 / Zero-Liquidity) Oracle PathSquid SquidMulticall Exploit — Arbitrary-Target Default Call Turns an Approved Multicall into a Universal transferFrom ProxySubQuery (SQT) Exploit — Unprotected Settings.setBatchAddress() Role HijackThetanuts BTC/USD Vault Exploit — ERC4626-Style First-Depositor Share Rounding at totalSupply() == 0TTSwap Market: permissionless initGood + attacker-controlled ERC20 skews AMM accounting via buyGood/payGoodVictim automation execute() missing auth drains yvWETH via Yearn withdrawal pathxLOOT Staking Exploit — Duplicate NFT IDs in redeem(uint256[]) Claim the Same Epoch Reward RepeatedlyAlkemiEarn Exploit — Self-Liquidation Storage-Aliasing Collateral DuplicationATM BlindBox predictable fallback RNG — attacker evaluates settlement seed before calling settleBCE scheduledDestruction drain — token transfer hook burns LP reserve tokens then sync()s the pairCurve LlamaLend (Inverse Finance sDOLA market) Exploit — Oracle / Band Manipulation Mass-LiquidationDayContract / Polarx — Spot Manip + Rigid Principal GuaranteedTRINITY dLEND — flash-premium divided by a 1-wei aToken supply inflates the cbBTC liquidity indexEST / BNBDeposit Exploit — skim()-Fed Proportional Reward Drain + AMM Reserve ManipulationInfinitySix — Stale 1-min TWAP + Instant Referral Bonus Over-MintLinea TokenBridge upgrade — permissionless reinitialization drains locksMovie Token (MT) double-count burn — BSC Mar 2026 ~$242KMyriad CLOB — free YES tokens when cross-market priceSum > ONEOld CheckoutPool Bridge Operator (_ALLOW_ALL_) — permissionless bridge() routed an ERC-4337 paymaster into draining CheckoutPool's USDC excessParallel 3.1 — processSurplus always reverts for managed collateralRevamp referral-reward drain — a self-referral that pays contributors out of existing pool BNBSablier Bob Escrow — Adapter vault _userWstETH not cleared after redemption enables theft of other users' fundsSablier Bob Escrow — Circular slippage protection in SablierLidoAdapter::_wstETHToWeth enables sandwich attacksStakeOnMe JAKE owner-wrapper reserve asymmetry — public owner-privileged mint vs. burn pays out against an inflated ETH reserveUniv3CollateralToken — Uni V3 position counted as collateral for every vault owned by the same minterVenus (vTHE) Exploit — Donation-Inflated Exchange Rate + borrowBehalf Drains a Victim's Pre-Approved DelegateVTSwapHook reserve/fee accounting divergence — Uniswap V4 custom-curve hook books full specified amount into reserves while pricing output on the fee-reduced inputWhalebit Oracle Manipulation Exploit — Spot-Priced Level Staking Round-Trips a Manipulable Algebra PoolWUKONG Staking — classical reentrancy in unstake() drains pooled LPXocolatl AccountLiquidator — arbitrary caller-supplied HouseOfReserve zeroes the liquidation costFoomCash / FOOM Lottery — Groth16 verifier with gamma == delta lets anyone forge proofsLAXO Token Exploit — Uncompensated Pool-Side Burn on Every Sell Breaks x·y = kMoonwell cbETH Oracle Incident — Mispriced Collateral Enables Near-Free LiquidationXDK Exploit — Sell-Path "Recycle" Removes XDK from the Live Pair and sync()s2026-01 Sparkle! (SPRK) Tobin-tax self-transfer inflationBuck Labs — mint price skips the oracle checkBuck Labs RewardsEngine — V1.1 never distributesFutureSwap Perpetual Drain — Fee Unit-Mismatch (addFee token-units interpreted as bps/share)Majority Protocol — free cross-game participation via unbound questionIdMajority Protocol — multi assertResults causes bond loss for all but firstMajority Protocol — re-join after leave permanently locks second entry feeMajority Protocol — refundCancelledGame missing join checkMajority Protocol — start without ranked rewards locks prize poolMajority Protocol — start without XPTiers yields zero unclaimable rewardsMakina Finance Exploit — Self-Referential AUM Oracle Manipulation via Permissionless Re-AccountingMT Token Exploit — Fee-on-Transfer Overcharge Drains the AMM Pair via skim()+sync()PRXVT Staking Exploit — Transferable Reward-Receipt Token Resets userRewardPerTokenPaidRuyui — a shop purchase without signup mints 100 CREDIT for 0Statusl — bypass stake lock via leave + migrateToVaultStatusl — global MP cap broken on unstake causes permanent DoSSynapLogic Exploit — Uncapped Cumulative Refunds in the Token Sale buy / swap PathTruebit Exploit — Inverted getPurchasePrice Lets Anyone Buy TRU For Free, Then Sell For ETHAmpleEarn — unrestricted router allows unauthorized merkle root settingMonolith — free-debt rounding allows unbacked borrowPanoptic — commission fees can always be bypassedPanoptic — cross-contract reentrancy converts phantom shares to real sharesRibbon Finance MarginPool — corrupted oToken expiry prices via pricer proxy takeoveryETH Weighted-StableSwap Exploit — Invariant Rounding Drift Mints Unbacked LPA shorter SapienVault top-up pulls the whole lock forwardBalancer V2 Exploit — ComposableStablePool Rounding-Error Drain via Rate-Scaled _upscale/_downscaleDRLVaultV3 Exploit — Self-Referential Slippage Lets a Manipulated Pool Set Its Own "Minimum Out"Megapot — Attacker can steal JackpotTicketNFTs from JackpotBridgeManagerMegapot — LP pool cap may be exceeded on drawing settlementMegapot — Unoptimized subset matches counting exceeds Base tx gas limitMoonwell Exploit — Corrupted wrsETH Oracle ⇒ Borrow ~$88K Against ~$0.07 of CollateralPear — a withdrawal closes the position and it loses 50 collateralSouls.club — staking during the cooldown flag wins 100 PRIZE the attacker should notstNXM — attacker profits by manipulating Uniswap liquidity via slot0Accountable — AccountableOpenTerm interest cannot be repaid once principal hits zeroAccountable — Cancelling redeem requests permanently blocks the withdrawal queueBaseSwapCallback Exploit — Public uniswapV3SwapCallback Approval DrainBOB Staking — Bonuses obtainable without proper lockingBOB Staking — Delegating to address(0) empties contract via alterGovernanceDelegateeBOB Staking — instantWithdraw does not transfer amountForContractCentrifuge v3.1 — pool managers steal other pools pending depositsHybra Finance — Assets deposited before calculating shares to mintIndex Fun: the seller pays the buyer's trade fee on a token swapMIM Spell ("MIMSpell3") Exploit — Collateral-Free MIM Mint from Privileged CauldronsRadius EVMAuth — a burn debits the zero address and leaves the holder unchangedRadius EVMAuth — a group transfer releases collateral while debt remainsRadius EVMAuth — group burn returns while debt remainsRemora — buyTokenOCP signatures reusable forever (missing nonce)Remora — div-before-mul in FiveFiftyRule::_updateEntityAllowance exceeds capsRemora — resolveUser lock migration can be griefed to extend lock durationRemora — unrestricted SignatureValidator::setAllowlist enables free buyTokenOCPSecuritize DSToken — unapproved transferFrom theftSequence — partial session-signature replay / frontrun (H-02)Sharwa Finance Exploit — Margin Position Closed Against an Attacker-Manipulated Spot Pool (No Slippage Bound)Sorella L2 Angstrom — All rewards can be stolen via incorrect active liquidity at boundary ticksStrata Tranches — donation-prevention gamed → withdrawals stuckStrata Tranches — sUSDe withdrawers always incur a loss (inverted CDO params)Strata Tranches — withdrawal active requests DoS'd by malicious usersTokenHolder / BorrowerOperationsV6 Exploit — Privileged-Role Confused-Deputy Drain via sell()'s Arbitrary CallAmmplify — H-10: subtreeBorrowedX/Y is node-only (makers underpaid)Ammplify — H-11: Segment-split geometric-mean borrow overstates taker feesAmmplify — H-3: Pool liquidity vs node liquidity mismatch from wrong PoolWalker.settle routeAmmplify — H-5: Borrow fee uses APY as per-second rate (extreme overcharge)Ammplify — H-6: First-deposit share inflation steals compounded maker depositsAmmplify — H-7: collectFees re-targets original asset.liq after adjustMakerAmmplify — H-8: Uninitialized Uniswap ticks inflate getInsideFees (funds stuck)Ammplify — H-9: Parent borrow marks sibling but settle skips sibling mintAmmplify maker spot-price manipulation — AuditVault 63167Ammplify malicious pool address — AuditVault 63179Ammplify: a maker callback moves the spot and the mint spends taker collateralBMX — a zero-rate incentive upsert pays a staker for the day before the schedule existsBMX — adjustToTick stops when nextTick equals the targetBMX — finalize sends WETH before the reward rate is setBMX — pending removals make finalize run out of gasBMX — transferring an LP NFT pays accrued rewards to the buyerH-1: notifyUnsubscribe gas underestimation leaves phantom gauge liquidityH-4: Finalize-window auto-vote change manipulates past epochKame Aggregator Exploit — Unvalidated executor.call() in swap() Drains User ApprovalsLicredity — decreaseDebtShare bypasses interest accrualLicredity — proxy-based self-liquidation creates bad debt for lendersLicredity — self-triggered afterSwap back-run enables LP fee farmingLicredity — swap-and-pop without index fix-up corrupts Position fungiblesMetaMask — TotalBalanceEnforcer validation bypass with state-modifying enforcersNGP Token Exploit — Sell-Fee Burns NGP Out of the Pair and sync()s, Collapsing the AMM ReserveOstium scaleVariables settles PnL at 20 instead of 10Super DCA — H-4: Bucket rewards wiped by stake/unstake before accrueTapio price() — two inverted feeds borrow 10^18 times too much0x8d2e Exploit — Permissionless uniswapV3SwapCallback Drains the Contract's USDC0xf340 VRF-Wrapper Exploit — Permissionless initVRF() Hijacks the LINK Payment RecipientABCCApp Exploit — Permissionless addFixedDay() Vesting Time-Warp Drains the DDDD Reward ReserveAutoPooledTradingBot double-withdrawal — withdrawInvestment pays out from deposits without burning shares, so emergencyWithdrawAll pays the same position twiceBaseCallback 0x8d2e… Exploit — Unauthenticated uniswapV3SwapCallback Self-TransferBaseSwapperUniswapV3 public swap drains its own token balance — arbitrary public access + full-balance refund to caller-chosen recipientBebop JAM Settlement Exploit — Signature-Bypass + Unconstrained Interactions Drain Stale ApprovalsBebop JamSettlement self-taker arbitrary-interaction drain — caller-supplied transferFrom calldata executed by the settlement contract against accounts that approved itBeefy ZapRouter arbitrary route execution — arbitrary call() spent victim allowances via transferFromBeetle — marking a beetle safe after a loss blocks the opponent's NFTBSC "DD" initcode-token drain — unverified victim exposes arbitrary token-path swap using its own WBNBCaller-supplied ControlTower grants migrator power — AuditVault synthetic reductionCoinbase Fee-Account Drain — Confused-Deputy via 0x Settler BASIC Arbitrary CallD3X AI Exploit — Proxy exchange() Prices D3XAT From A Manipulable PancakeSwap Spot ReserveEquilibria (VaultEPendle) — reward debt not updated on ERC20 share transfer, draining native-ETH rewards via fresh receiversEVAA — a short liquidation fee locks the user vaultEverValueCoin (EVA) Exploit — Stale-Price Orderbook Settlement Arbitraged Against a Live AMMFake staking pool is accepted by stakeNxm — AuditVault synthetic reductionGaugeController drops infinite VotingEscrow locksGrizzifi Exploit — Sybil Milestone-Reward Farming via Self-Referral ChainGTE — burn over-estimates LP distribution when launchpad fees accruedGTE — Distributor addRewards with fake quoteToken drains real rewardsGTE — DOS graduation via 1-wei donation + syncGTE — free LP mint when accrued launchpad fees are non-zeroGTE — Launchpad pairFor CREATE2 salt mismatches factoryGTE — swap drains pair via phantom amountIn from launchpad feesHexotic (HEX-OTC) Exploit — Mispriced OTC Orders Arbitraged Against Uniswap-V3 SpotHiding a staked NFT inflates share ownership — AuditVault synthetic reductionLiquidityGauge drops a reward interval when totalSupply is 0LUXERA (XERA) Exploit — Dangling Infinite Approval to Multicall3 Drained via aggregate3MyCoinMaster missing-access-control on buyBYAdmin lets anyone mint MYC for free and drain the pool via swap — public function lacked an onlyAdmin guard present on every other privileged pathOwner burns liquidity from an arbitrary NFT position — AuditVault synthetic reductionPDZ / "TB Build" Exploit — Spot-Price getAmountsOut Reward InflationPendle Reflector — reflect() operated on Reflector-held balances using caller-supplied, unvalidated market and limit-router addressesPenguingotchi: dead penguins still count toward the alive purchase capPresaleV5 oracle manipulation — flash-loan spot-price (slot0) read by the presale pricing function let an attacker buy tokens cheap and sell them at fair priceResolv Staking: checkpoint of the zero address zeroes totalEffectiveSupplyRWf(x) undercollateralized underflow — AuditVault 63647Size Credit FlashLoanLoopingV1_7 Generic-Route Arbitrary Call — third-party token allowance theft via caller-controlled router.call(data)Size Credit LeverageUp Exploit — Arbitrary External Call via GenericRoute Swap Drains User ApprovalsSyntetika — mint ignores decimals and the BTC priceUnverified Polygon swap router drained via fake Uniswap V3 pool — attacker-supplied pair/callback trusted without authenticationUnverified proxy 0x6f7a drained via permissionless rebalanceAndAddLiquidity selector — anyone could push a victim's live token balance through its liquidity pathWXC Token Exploit — Burn-From-Pool + sync() "Phantom Reserve" DrainYuliAI Exploit — Buyback Priced off a Flash-Manipulated V3 Spot PriceYuzu non-atomic updatePool sandwich — AuditVault 62757AnyswapV4Router permit-fallback drain — trusting a non-reverting permit() on a token that does not enforce itAragon — EarlyExecution proposals vulnerable to flashloan vote attacksArcadia RebalancerSpot — Unvalidated swapData → Arbitrary router.callBIFKN314 (ERC-314) flash-swap LP inflation — reserve snapshot taken after swap-out, before repayment, lets a dust addLiquidity mint pool-dominating LP sharesBoJ Leverage Market cbBTC reserve index inflation — flash-loan fee compounding against a near-empty aToken supply inflates the liquidity index to steal every listed assetCamp: bridgeOut records a deposit that msg.value did not payCamp: the bridge fee is taken from the next depositorConsensus accepts duplicated signers — AuditVault synthetic reductionElytra — the elyAsset price underflows and 1,050 ASSET stays stuckEmpty Set Reserve stale fixed-order drain — buying COMP below market from a hard-coded maker/taker priceEtherspot — a batch consumes lockedAmount twiceEtherspot — a second session key overwrites the firstEtherspot — a session key spends 1000 GLUE past a 100 GLUE limitEtherspot — an attacker installs their session key and claims the escrowEtherspot — an outsider userOp moves 1000 GLUEEtherspot — execute reverts and 1000 GLUE stays in the walletEtherspot — wallet B spends 1000 GLUE from wallet AFeeManager miscalculates performance fees — AuditVault synthetic reductionFPC Token Exploit — Sell-Side burnLpToken() Drains the Pool's Own FPC ReserveGMX v1 Exploit — GLP Share-Price Manipulation via globalShortAveragePriceGTE CLOB — amend bypasses maxLimitsPerTxLiquity V2 ActivePool urgentRedemption — permissionless extraction of collateral from shut-down undercollateralized troves at a +2% bonusLiquity V2 scrvUSD branch urgent-redemption arbitrage — permissionless cherry-picking of undercollateralized troves with a 2% bonusLT never charges the minimum admin feeMellow Flexible Vaults — native token withdrawals permanently brickedMellow Flexible Vaults — protocol fee multi-accrual in submitReportsMellow Flexible Vaults — RedeemQueue batch vs claim timestamp mismatchMulticallWithETH Exploit — Arbitrary-Call aggregate() Drains an Unlimited USDC ApprovalOctoDeFi — anyone sets the deposit fee to 100% and takes the depositOnchain Heroes — a Mythical weapon never mints weapon shardsOnchain Heroes — bronze gacha is never mintedRANT Token Exploit — Self-Transfer Triggers Un-compensated LP Reserve BurnRedeem queue burns shares before charging fees — AuditVault synthetic reductionRemora Pledge: changeStablecoin swaps the payment token's decimals without rescaling raw-unit accountingRemora Pledge: PaymentSettler can change its stablecoin but RemoraToken can't, permanently DoSing fee-bearing transfersRemora Pledge: pledge spends a victim's stablecoin because it never checks msg.sender == data.signerRemora Pledge: pricePerToken * numTokens multiplies two uint32, so every pledge above ~$4,294 permanently revertsRemora Pledge: removing a shared forwarder calls deleteUser, wiping calculatedPayout still owed to every other forwarding holderRemora Pledge: uint64 calculatedPayout overflows on high-decimal stablecoin payouts, permanently bricking claimsResolv self-transfer reward theft — AuditVault 61872Securitize OnRamp replay — signed transactions remain valid after useStakeDAO — [C-01] Missing extra reward per token update on depositStepp2p Exploit — Double-Refund via modifySaleOrder on an Already-Cancelled OrderStrategyLlamaLendConvex share-accounting drain — a dust deposit minted strategy shares that redeemed for the strategy's entire Curve Lend positionSuperRare Staking Exploit — Permissionless updateMerkleRoot() + Single-Leaf Merkle ForgerySuzaku — caching a future epoch inflates the reward shareSuzaku — claiming one reward token marks every token claimedSuzaku — claiming sets the cursor past undistributed epochsSuzaku — stake cache pays rewards before P-Chain confirmationSuzaku Core — a blacklisted delegator version still becomes an entity and pulls 1000 SZKSuzaku Core: vault rewards are scaled by the operator's cross-asset totalSuzaku counts one curator's share twice and locks 1,000 of the epoch's reward tokensSuzaku dust forceUpdateNodes leaves 600 stake that a rebalance should have movedSuzaku migrate installs blacklisted version 2, which sweeps 1,000 DAISuzaku uptime — the split pays 500 instead of 900SWAPP Staking Exploit — Unchecked transferFrom Return Value Lets a Free deposit Mint Staking Balance, Then emergencyWithdraw Drains the VaultUnverified-proxy USDT drain via recipient-only signature — signed 5-min/recipient message did not bind victim, token, amount, or nonceUnverified670471 — Balancer flash-loan callback forwarded to a victim that repays the loan with its own fundsUnverified6883 Fake-Pair Callback Hijack — UniswapV2 flash-swap callback trusts a freshly-created attacker pair and pays WETH into itUPENG burn+sync drain — permissionless burn(address,uint256) lets anyone torch a Uniswap-V2 pair's token side, then sync() commits the manipulated balance as reservesVDS Exploit — deposit() Mints 5× VDS for AVD, Redemption Refunds AVD 1:1VII Finance — fees stolen from partially unwrapped UniswapV4Wrapper positionsVII Finance — liquidations can be made to revert by an attackerVII Finance — more value extracted by liquidations than expected (normalizedToFull)weETH LRT Minter Exploit — Unprotected 0x03b79c24(address) Token SweepWETC Token Exploit — Fee-on-Transfer + skim/sync Reserve DrainWhereIsMyDragonTreasure — fixed redemption reward larger than the recipe cost to mint a legendary card"b5cb0555" Exploit — Permissionless printMoney() Forwarder Drains a Trusted Treasury (Confused Deputy)AaveBoost Exploit — Permissionless proxyDeposit() Subsidy DrainBankroll Network Stack Plus — public buyFor(address,...) spends any victim's LINK allowance and lets the caller skim the dividend pool it just inflatedBankrollNetwork Stack Exploit — Stale lastPayout Instant-Drip Dividend InflationBankrollStack (BankrollNetworkStack) Exploit — Flash-Loan Dividend-Drip CaptureBasePricePool withdrawGOUT price-decoupling — manipulable-balance oracle lets flash-bought QCD be redeemed for GOUT at an inflated internal rateBatch nonce overflow freezes withdrawals — AuditVault synthetic reductionBitCrown Distributor Drained via Unprotected batchTransfer — anyone could move the distributor's token balance to any recipientBSC MEV Vault 0xb5cb… — Authorized Helper Arbitrary Call Drains Venus vTokensDaos.live — finalize mints the DAO allocation into a contract that cannot withdrawDaos.live DaosVesting — claim() drains the vested token potDaosLive — sniped tokens are paid to the contract and cannot be withdrawnDaosLive — the snipe swap is sent with deadline 0DEToken charges interest on the tokens a deposit just minted and pays out 210 extra RTokenDIA — a 1-wei share rounds the next deposit to zero and takes itDIA — a 100 percent principal share cannot unstake, because WDIA rejects a zero transferDIA — a 12-hour stake is paid zero because the reward counts only full daysDIA — a new stake is paid every reward the pool ever accruedDIA — a partial unstake makes the next unstake revert, and 5000 stays lockedDIA — paidOutReward makes the next unstake revert, and 10000 stays lockedDIA — unstake pays the live rate for days that accrued at the old rateDIA — updateRewardRatePerDay accrues 20 where the old rate accrued 100000DIA Lumina: a claim floors the partial day and moves the clockEtherspot CredibleAccountModule — anyone can uninstall a wallet's validatorEtherspot ResourceLockValidator — a lock signature authorizes a different batchEtherspot: disableSessionKey checks the disabler's wallet, not the session ownerFixedTokenBSwap RTV drain — attacker-supplied path + fake-token transferFrom bypass the on-chain price check, extracting a fixed 10 RTV per callFloodPlain — a singular sourceConsideration hook drains a fulfillerGangster Finance "OG Vault" Exploit — Stale lastPayout Drip-Pool Drain via Self-donate() + harvest()GlueX V2 — a partner is paid 0 while 1000 GLX of surplus stays in the routerGradient Market Maker Pool Exploit — Mixed-Unit LP Share Accounting (ETH wei summed 1:1 with ERC-20 token units)H-2: Attacker drains Morpho suppliers by inflating collateral priceH-4: Direct Morpho borrow misprices withdrawal-request collateralH-7: claimAccountRewards pays MORPHO the users rewardsHanji: a partial bid claim returns the unfilled fee and still counts itHoldSafe price-manipulation referral drain — oracle pricing of stake value and rewards from a manipulable DEX spot routeInitcodeFactory collectFees — caller-authorizes via fake token creator() and drains ETH on a non-WETH token1KittenSwap — a voter claims the next period's incentivesKittenSwap — Lack of lastMintedPeriod update allows unlimited minting of KittenKittenSwap — RebaseReward fails because of incorrect token handlingKittenSwap: the gauge never sets votingReward, so fees are not paidMeta Pool (mpETH) Exploit — Free mint() on a Native-ETH ERC4626 VaultMOMO Buyback-Bot Exploit — Permissionless, Slippage-Free 5ff02eae() Sandwiched on a Thin USD1/MOMO PoolMystic — validator unstake burns frxETH and never records the withdrawalNotional Exponent H-10: caller-controlled TradeType (EXACT_IN → EXACT_OUT) drains the vault on redemptionNotional Exponent H-11: expired-PT redemption uses sy.redeem(..., minTokenOut: 0) → sandwich drains the userNotional Exponent H-3: Dinero withdraw manager over-withdraws via batch-ID overlapNotional Exponent H-6: uint16 s_batchNonce overflow permanently bricks Dinero withdrawalsNotional Exponent H-8: PendlePTOracle assumes 1 SY == 1 Yield Token → inflated PT price → bad debtNotional Exponent H-9: hardcoded use_eth = true on Curve V2 exit locks WETH-vault fundsPanoptic Hypovault — poolExposure1 premium operands reversedParaSwap Augustus — arbitrary exchangeData lets an unprivileged caller drain any account that approved the router — $2,299 DAIPegaBall — buyGamesFrom self-funds ticket purchases from the contract balance instead of msg.value — free vendor/referrer cut drainRegnum: a deposit prices utilization on stale debt and refunds 160 raUSDResupply Finance Exploit — Empty-Vault Share-Price Inflation → exchangeRate = 0 → Uncollateralized BorrowSapien staking: unstake pays the recorded balance without deducting itSapien: a stake signature is replayed into claimRewardSilo Finance Exploit — Untrusted Swap/Silo Targets in openLeveragePosition Let Attacker Re-route a "Swap" into Silo.borrowSinstakeNetworkZombie dividend-donation flash-drain — flash-borrowed ZOMBIE donates dividends that the same-tx buyer/seller immediately withdraws, netting excess ZOMBIE convertible to WBNBStead Farm Exploit — Permissionless STEAD Drain via Un-Access-Controlled FunctionStrata — a supported-vault withdrawal takes 600 out of sUSDeStrata — a yield-phase redemption takes the vault's entire sUSDe balanceSuperfluid Locker — Pumponomics can be skipped via provideLiquiditySuperfluid Locker — Staked tokens inside FluidLocker can be withdrawn without UnstakeSuperform — a merkle proof for one hook is accepted for another, and 100 ASSET movesSuperform — a PPS signature with no nonce is replayed and the redeem pays 100 too muchTokenFactory fake-router LP drain — caller-supplied swap infrastructure is trusted without verifying the returned pair belongs to the new tokenTokenVault (Gangster Finance) — same-tx donate+deposit inflates fresh shares against the drip poolTSAggregatorGeneric arbitrary swap-target calldata drains victim allowance — attacker-chosen swapRouter/data lets swapIn() call any function on any token the aggregator is allowed to spendUFarm: a nonzero withdrawal lockup returns before the withdrawal is queuedWAL-E Coin proxy reinitialization → authorized buyback drain — public initialize() with no guard rewrites owner/router and unlocks triggerZeusBuybackAria — stRWIP is always minted for RWIP in a 1:1 ratioBaseGauge pays the same reward accrual twice because integral is never advancedBeta (BETA) Presale — public set() + per-sender-only deposit cap let a recycled flash loan drain the presaleBitallxSC payout-array bypass drains victim USDT balance — public BitallxPayOut validates only totalSendAmount, never sum(amount[])Blackhole — inverted setRouter zero-address check bricks pool launchesBlackhole — Reward token in GaugeFactoryCL can be drained by anyoneBlueberry HyperliquidEscrow — tvl() omits in-flight USDCC-02: Missing packet ID in finalizeOpen causes NFT lossCAP Labs — a same-block delegation takes 750 of 1000 RWDCAP Labs — decimal count creates an inaccurate staked priceCAP Labs — fee auction charges for zero assetsCAP Labs — health and slashable collateral disagreeCAP Labs — inconsistent vault balance tracking bricks borrowingCAP Labs — unvalidated vault address inflates interest ratesCAP Labs PriceOracle — global staleness period rejects valid feedsChat points manipulation via custom Uniswap V4 poolsCork Protocol Exploit — Permissionless Market Creation with Attacker-Controlled exchangeRateProviderCrosswise MasterChef trusted-forwarder hijack — public setter with no access control enables arbitrary _msgSender() spoofingDODO Cross-Chain DEX — empty swapData skips swap and pays high-value target 1:1DODO Cross-Chain DEX — missing msg.value check on ETH placeholder drains ZRC20DODO Cross-Chain DEX — swap output token ≠ withdrawal target drains gatewayDODO Cross-Chain DEX — unauthorized claim of non-EVM chain refundsDODO Cross-Chain DEX — withdrawToNativeChain swaps arbitrary ZRC20 inventoryDogeAlliance sync() reserve manipulation — LP pairs with token balances desynced from reserves drained by permissionless sync + swapDumbo DUM staking reward inflation — permissionless, repeatable distribute() lets an attacker mint compounding rewards inside one transactionFIVA AMM: the PT-to-SY balance check ignores locked SY and the user loses the PTFIVA YTMinter — a shared redeem deposit lets anyone finish the positionFIVA: a swap between the minter index update and the pool index update sticks 100 PTGains Network: decrease uses pre-fee available collateral and under-debits the vaultgTrade charges a v9 close -1e8 of skew (1,000 DAI) instead of 0gTrade keeps 400 DAI when a counter-trade increase is canceledHarmonix — withdraw burns the rounded-down share countHarmonix — writing the NAV replaces the fee-harvest timestampHarmonix FundContract — first depositor inflates the share price and takes the next depositHarmonix: a partial withdrawal clears isAcquired and strands the restHarmonix: a second partial redeem charges the original fee againHarmonix: NAV subtracts a fee that is already inside the withdrawalHarmonix: the management fee clock starts at vault setupHyperstable — anyone can consume an emission epoch and the minter then mints 0Hyperstable — RewardsDistributor.claim reverts once a ve lock expires and the reward stays in the distributorIRYSAI Exploit — Backdoored transferFrom Lets the Tax Wallet Drain the LP PoolKittenSwap — anyone can pin a CL gauge and collect the pool's feesKittenSwap — CLGauge pays KITTEN to itselfKittenSwap — earned() skips the checkpoint before the lastKittenSwap — epoch rewards use the next epoch's supply, so the voter is paid 100 of 1000KittenSwap — split mints an arbitrary locked amountKittenSwap — split skips the week rounding and inflates voting powerKittenSwap Voter — deactivating a gauge deletes claimable rewardsKittenSwap: a same-block delegate duplicates a token id and its voteKittenSwap: a shared point struct freezes the historical blockKRC Token Exploit — Fee-on-Transfer Token Burns From Its Own Pool, Desyncing ReservesLayerEdge — Incorrect tier tracking when tier 3 staker exitsLayerEdge — When stakerCountInTree increases, some users receive less interestLEND H-11: cross-chain borrow ignores per-chain token decimals (~1e12× overborrow)LEND H-18: incorrect srcEid check in borrowWithInterest (cross-chain debt reads 0 → liquidation evasion)LEND H-20: multiple cross-chain borrows reuse the same collateral (Nx overborrow)LEND H-3: both cross-chain mappings populated bricks borrowWithInterest (liquidation evasion)LEND rewards are paid on a borrow that was just written, so the borrower gets 200 instead of 100LEND: a full cross-chain repay clears the borrowed-asset flag while 250 of same-chain debt remainsLEND: liquidation success looks up destEid 0 and leaves 500 escrowedMBU Token Exploit — Decimal-Scaling Bug in deposit() Mints ~1e18× Too Many TokensNalakuvara / LotteryTicketSwap50 Exploit — Fixed-Payout Redemption Drains the AMM PoolP2P Yield Proxy: the deposit fee residual stays in the proxy with no withdraw pathPenguinGotchi: the activity roll is the caller's saltRegnum Aurum: a borrow is checked before interest accrues and the position exceeds its 100 token capRICE / BentoBox-Clone Exploit — Signature-less setMasterContractApproval Lets Anyone Drain Any DepositorRipIt: authorizedOpenPacket pays a second card bundle through the receive hookStale exchangeRateStored lets a supplier book extra lTokens and redeem other depositorsSubsequent cross-chain borrow skips accrued interest — AuditVault synthetic reductionUniswap hooks — a falling first tick leaves the sandwich cap unsetUniswap hooks — new limit-order liquidity takes 90 of 100 accrued FEEUniswap The Compact — incorrect emissary storage slot breaks authorizationUnverified Base airdrop-claim contract drained via constructor-time claim spam — per-claimant eligibility keyed on msg.sender with no nonce/code/allow-list guardUnverified BSC Victim Drain (mintTokens 0x88417d5c) — missing access control lets anyone sweep the contract's ERC20 balancesUnwarp Exploit — Permissionless unwrapWETH(amount, recipient) Self-Balance DrainUsual Money Exploit — VaultRouter.deposit Routes Through an Attacker-Controlled Swap Venue With No Real Slippage FloorXPress: stale trader balance lends the 1000 reserveYDT Token Exploit — Permissionless proxyTransfer() Drains the Liquidity PoolYearn yBOLD — Deposit after loss report free-rides collateral recoveryYearn yBOLD — Steal 25% of first depositor funds via share inflationZealous: the first depositor rounds the next stake down to 1 shareAegis YUSD — a redemption pays 100 collateral and burns 90Aera Contracts v3 — incorrect received-swap-amount calculation lets guardians bypass the daily loss limitAgentNftV2.addValidator duplicates a founder and strands their rewardAIRWA Exploit — Permissionless setBurnRate() + Zero-Value Transfer Pool-Reserve AnnihilationAmpKashi (Kashi AMP/USDC) flash-loan oracle manipulation — borrow against a stale spot priceAventa / IntelliQuant reward-claim drain — claim size is computed from a spot, attacker-controllable token balanceberaBTC — a blacklisted holder still moves 1000 tokens through an approvalberaBTC mint and redeem fees are burned or never minted — the treasury stays at 0BITDOG token — public changeRouterVersion hijacks swap router & drains contract BNBBlueberry HyperVaultRouter — missing asset index check mints shares for any tokenBlueberry TVL share inflation — AuditVault 61480BTNFT Exploit — Permissionless Reward Theft via a Broken _update OverrideBurve — Incorrect handling of ERC4626 vaults with feesBurve — Incorrect tax distribution when adding value single-sidedBurve — Reserve share overflows due to strict reward calculationBurve H-6: fee bypass in ValueFacet.removeValueSingle (variable used before assignment)Burve: an attacker captures unclaimed fees by timing a deposit around range re-entryCabal: LP unstake burns the shares and still prices them against the pending underlyingContributionNft.mint lets the proposer pick the impact that gets paidFlyLong (FLG) — public balance-forger lets any caller fake the LP's token balance and drain the WBNB side of the pair — access-control/missing-authForte Float128 — [H-01] Early 72-digit adjustment in sqrt wrong exponentForte Float128 — [H-02] Sqrt silently stops the entire call frame on packed 0Forte Float128 — [H-04] eq ignores L_MANTISSA_FLAG / dual encodingsForte Float128 — [H-05] Precision loss in toPackedFloat for mid-range mantissasHanji OnchainLOB — a transfer hook still sees the old trader balanceHanji: nominal credit takes 100 from the honest balanceHarmonix — a withdrawal is charged 100 instead of the 3.5 trading feeImpermax V3 Exploit — Self-Liquidation Debt Wipe via restructureBadDebtInfraVault — permissionless reward claim strands tokens on the MetaVaultKinetiq — receive() re-stakes Core-returned HYPE and bricks confirmWithdrawalKinetiq: cancelling a buffer withdrawal then redelegating locks 15 HYPELaundromat Exploit — Free Ring-Membership Drains a Dormant MixerLevel zero heartbeat blocks claims — AuditVault 63737Life Protocol Exploit — Asymmetric Bonding Curve: Pump the Buy Price, Dump at 90% of the PeakMetaMask MultiTokenPeriodEnforcer: getTermsInfo scans every record and the late token cannot be redeemedMultiTransferSwap ETH refund drain — loop-accumulation bug lets attacker reclaim msg.value against the contract's own balanceR0AR (1R0R) Staking Exploit — Backdoored user.amount + Self-Capping EmergencyWithdraw() DraintCDP transferFrom allowance-swap bug drains holders' tokens — ERC-20 transferFrom debits the wrong allowance slotUnverified 0x607742A2 Exploit — Permissionless uniswapV3SwapCallback Approval DrainUSDi — a withdrawal fee priced in USDi is paid in backingVirtuals — new validator receives historic voting credit and the full rewardVirtuals — public impact recalculation redirects reward allocationVirtuals — stale promptMulti cache burns and misroutes user paymentsVirtuals Protocol — anybody can control a user's delegate via AgentVeToken.stake() with 1 weiYB Token Exploit — Sell-Triggered Uncompensated Pool-Reserve Burn (sync() price manipulation)YieldFi CCIP: every inbound message reverts when decoded (uint32 vs uint64 chain selector)YieldFi CCIP: missing source validation lets an untrusted chain drive privileged mint/unlockYieldFi YToken: wrong owner (msg.sender) passed to Manager.redeem in delegated withdrawalsZetaChain: a dirty ZETA transfer is staked again because the precompile does not commit0x MainnetSettler Exploit — Arbitrary transferFrom via the BASIC Action's sellToken == address(0) Confused-Deputy Fall-Through1inch Fusion V1 Settlement Exploit — Yul Calldata-Length Underflow Hijacks the Resolver Dynamic Suffix540 seconds is used instead of 540 days — AuditVault synthetic reductionA flash loan can unwind someone else's Bold trove through the zapperAlkimiya SilicaPools Exploit — uint128(shares) Truncation Inflates Redemption PayoutApollon TroveManager — anyone can exclude collateral and inflate a stakeBBX Token Exploit — Stuck Daily-Burn Repeatedly Drains the Pool's BBX ReserveBeraji KO: a second stake moves lastPrintedAt and wipes 1000 unclaimed aSugarBeraji KO: claimTokenFee zeros the fee and then transfers 0, so 1000 staysBeraji KO: deligateStake pulls 1000 from a victim allowance into stakingBeraji KO: nested updateReward makes a full claim pay 0 instead of 1600Biconomy Composability — [C-01] Missing DelegateCall checkBlueberry — 1000 USDC is bridged to the legacy Hyperliquid addressBlueberry approved withdrawal drain — AuditVault 61458Blueberry VaultEscrow — precision loss makes the L1 bridge revertBold batch shares truncate, so 99 debt is minted as 0 sharesBurve — DoS on mint() and burn() due to overestimation of available liquidityBurve — First deposit front-running attackDCF Token Exploit — Transfer-to-Pair Reserve Burn Inflates DCF PriceDIA Spectra — fee dropped during the interchain oracle callback (permanent DoS)DUCKVADER Exploit — Permissionless Free-Mint via Broken buyTokens() + Storage ShadowingERC-20 fees are permanently locked in Treasury — frozen fundsf(x) v2 flash loans revert on an honest repaymentH2O Token Exploit — skim()-Triggered Self-Minting Reward DrainHyperhyper — a full withdrawal leaves Fenwick index 3 staleHyperhyper — a PLP transfer skips the reward indexHyperhyper — call payout spends buyToken locked for a putHyperhyper — option premium is priced on the short input periodHyperhyper — removeLiquidity subtracts the net and not the feeHyperhyper — slippage is applied to the spot quoteHyperhyper — worthless options lock collateral with no unlockHyperhyper OperationalTreasury — payOff underflow locks the pool collateralHyperstable — a perpetual lock scores zero voting power and is paid nothingHyperstable — deposit_for rejects a perpetual lockHyperstable: anyone can delegate a lock's votes and take its emissionsInfiniFi — a wiped unwinding bucket stores slashIndex = 0 and locks withdrawalsinfiniFi — applyLosses over-slashes later buckets by shrinking the denominatorinfiniFi — cancelling an unwind one epoch later locks 800 receipt tokensInfiniFi — minting 1 wei of iUSD to a victim makes their redeem revertInfiniFi — Referencing the gateway balance in increaseUnwindingEpochs can DoS the functionInfiniFi — StakedToken holders can circumvent restriction by approving another address to withdrawinfiniFi: unwinding in the same epoch takes 50 from BobKinetiq LST — precision truncation on stake causes accounting insolvencyKinetiq: a declaration initializer never reaches the proxy, so the unstake fee is 0Later stHYPE withdrawal takes 1 HYPE from an earlier 10 HYPE fillMetaMask DeleGator — userOp hash omits the EntryPoint, so the signature replaysPaladin Valkyrie — recycled LP liquidity pays the reward token to the callerPaladin Valkyrie — uint96 reward-per-token downcast locks the rewardsPaladin Valkyrie — uncapped poolRewards array makes claim run out of gasPaladin Valkyrie: a price outside the FullRangeHook ticks makes the first mint revertPTM (Phoenix To Moon) token — public addLiquidity() lets anyone spend the token contract's own PTM/USDT into the LPPump / TiPTAG Token Exploit — Permissionless Pre-Listing Liquidity Seeding Drains the Bonding-Curve ListingRnsPay arbitrary dexRouter call drains any token a victim approved to the protocol — attacker-supplied exchange target lets pay() execute transferFrom against arbitrary victimsSamPrisonman (SBF) Exploit — Externally-Controlled Balance Write Lets an Attacker Zero the AMM Pool ReserveSBR Token Exploit — skim() + broken token transfer zeroes a Uniswap-V2 reserveSIR (Leverage) Exploit — Dirty Transient-Storage Slot Turns uniswapV3SwapCallback Into an Open DrainStackMarket graduated-account flash-loan drain — buy path swaps a Uniswap V3 pool with caller-controlled (zero) slippage, then unwinds at the inflated pool priceSWT token burn-then-sync drain — permissionless burn(address,uint256) desyncs an AMM pair's reserves before sync()SXT — [C-01] Accepting duplicate signatures from one signerUnlocking percentage formula applies an 80% penalty — AuditVault synthetic reductionUnverified swapit() helper — public function lets anyone trigger a contract-owned USDC swap through the same AMM pool, harvesting the price impactValkyrie — a Bunni swap reverts and 1000 IN stays with the userValkyrie — a long first distribution blocks the next reward notifyValkyrie — a missing user-liquidity sync pays the staker 0Valkyrie — a permissionless reward notify locks staked LPValkyrie — a zero-liquidity swap blocks a 1000 LP depositValkyrie — integer reward rates leave incentive tokens stuckValkyrie — six ranges stop a swap of 1000 INValkyrie — time-weighted rewards keep growing after the stream endswkeyDAO Exploit — Fixed-Price Presale buy() vs. Live AMM Price ArbitrageYzi AI (YziAI / YziLabs) Exploit — Hard-Coded manager Backdoor in transferFrom0xD4F1…7Cb3 Exploit — Uninitialized OwnableUpgradeable Lets Anyone Become Owner and withdrawFees()A 1 second lock matches a 28 day lock and takes 100 of 200 reward tokensAnyone can point Alice's veRAAC boost at their own pool and collect her 1,000 RAAC rewardBankX Router — swapXSDForETH Reentrancy (BSC focus)Blend v2 — Steal other users' emissions via vulnerable claimBybit Cold-Wallet Heist — DelegateCall masterCopy Overwrite of a Gnosis SafeCoinflip — a winning bet leaves 90 tokens locked in FlipCoinflip — a withdrawal prices shares on a balance that still owes a payoutCoinflip staking — a later deposit takes 80 of an earlier staker's yieldDefi App relock unstakes the gauge and the 100 LP tokens cannot be withdrawnDefiApp: on-behalf stake pushes dust locks until the victim's withdraw runs out of gasFour.meme Launchpad Exploit — Liquidity Migration Front-Run via Pre-Initialized Pancake V3 PoolGMT7 Helper permissionless drain — unverified trading bot helper exposed public buy/sell functions with no access control and infinite router approvalGoldReserve NFT profit double-claim — ERC1155 transfer resets the per-address profit accumulatorHegic V8888 Put Pool Exploit — Re-withdrawable Liquidity Tranche (withdrawWithoutHedge)HenloKart native-token drain — zero-value race commitment funded from the victim balance, then immediately cancelled back to the attackerHyperstable: a 1-wei dust vote makes a vePeg NFT unpokeableHypurrFi — the aToken proxy getter returns the implementationINVISTECH buy-tax drained the AMM pair — fee-on-transfer tax charged from the pair's own reserves on every buy, breaking the constant-product invariantKinetiq — Exchange rate calculation is incorrectKinetiq — Exchange rate implementation not used in token operationsKinetiq — Funds can be permanently locked due to unsafe type castingKinetiq — Some stakers may fail to withdraw staking HYPEKinetiq deactivateValidator leaves 1,000 HYPE on the validatorLendingPool withdraws Curve vault shares with the user as owner and the liquidity stays lockedLiquorice: 67 inflation rounds make a 293 DAI deposit mint 1 share, and the attacker keeps 72.713 DAIMystic Finance syncRewards: lastRewardAmount stores the cycle deltaNapier: claiming YBT early pays Alice 56.25 rewards and Bob 43.75 for the same YTOne 100 veRAAC balance is delegated twice and claims 200 reward tokensOpenOcean Limit Order Protocol — unrestricted transferTokens() drains any pre-approved makerOptimism Interop — malicious tokens at deterministic addresses steal cross-chain fundsPeapods Finance Exploit — Permissionless depositFromPairedLpToken() Forced Swap at Manipulated Spot PriceRAAC gauge: distribute() never calls updatePeriod, so 1000 RAAC stays unclaimableRAAC RToken burn pays 1000 principal and leaves 1000 of interest in the contractRAAC StabilityPool: liquidateBorrower scales debt by the usage index twice and the liquidation revertsRAAC: fee distribution safeTransfers 1000 RAAC into a Treasury that cannot withdraw itRAAC: minting an NFT locks the 5 crvUSD price inside the NFT contractRAAC: minting the underlying amount lets a 1000 deposit withdraw 1100RAAC: redeeming 100 ZENO pays 0.0001 USDC and leaves 99.9999 USDC in the contractRecall — [H-01] Missing signature duplication check in submitCheckpointRecall — [H-04] Overflow count of messages in bottom-up batchRecall — [H-05] Incorrect supply fund transferral in leave()Recall — [H-06] Reentrancy in leave() leads to halting of bottom-up checkpointsRecall — [H-07] Incorrect loop indexing in compact()Recall — [H-09] Cross msg recipient can block checkpoint submissionRoots — [H-01] Overwriting collateral breaks collateral gains logicRoots — surplus collateral claim reverts and 6 stays in the stakerRoots Staker — the wrong activateBoost selector leaves a 7 reward unpaidRoots Staker — the wrong getReward selector leaves 5 collateral stuckRoots Staker stakes BGT into BGTStaker and then cannot claim the HONEYRoots TroveManager — openTrove writes stale totalActiveDebtScorch OTC scorch() drains ETH via manipulated spot getAmountsOut quote — on-chain price manipulation in a burn-for-ETH functionStepHeroNFTs Exploit — Reentrancy in claimReferral() Drains the Marketplace's BNBTerm Structure: a buy ignores the FT just minted and opens 100 extra of GT debtTerm Structure: withdrawAssets subtracts the withdrawal twice and locks the restTHORWallet — Bridge path bypasses TITN transfer lock — send to any addressTHORWallet — MergeTgt has no deposit cap vs TGT_TO_EXCHANGE — late claimers stuckTreasury Vesting — batchRelease updates state before transfer, users get nothingUnverified "Slot" Staking Contract — releaseSlot() Reentrancy BNB DrainVenus (zkSync Era) Exploit — wUSDM ERC4626 Donation → Oracle Price Inflation → Self-Liquidation DrainveRAAC: a dust lock plus increase mints almost twice the voting powerveRAACToken: a second lock() overwrites the position and strands 500 RAAC98Token ("98#") Exploit — Unprotected public swapTokensForTokens() Drains the Contract's Token ReserveA position cut from 10 to 5 passes the margin check and is liquidated for 15 DSUAbacus clearUnusedBond drains credits — AuditVault 48699Abacus past-closure adjustment bypass — AuditVault 48701Abacus tokenMapping inconsistency — AuditVault 48698Abacus transferFrom drops locked ether — AuditVault 48700AI IPC Token Exploit — Sell-Triggered Pool Burn (_destroy) Drains the AMM ReserveAIXBT Forced-Swap Exploit — Public "Auth-Key" Selector Swaps Victim's Whole Balance into Attacker LPAny attempt to liquidate a user will fail — StabilityPool never holds crvUSDAST Token Exploit — Faulty transfer Liquidity-Tracking Burns Pool Reserves TwiceBurve — island shares are minted to the user, so redeem cannot burn themBurve Edge — the below-range ratio pays 0 instead of 5Burve mints island LP without taking the underlyingBurve SimplexDiamond — Unrestricted diamondCut allows unauthorized facet modificationsBurve's mint callback pulls any approved balance into the poolcollect() trusts an arbitrary DAO contract — AuditVault synthetic reductionDefiApp — sale tokens are not scaled to 18 decimalsDESK / HMX — Incorrect margin calculation due to inconsistent realized and unrealized balancesDynamicAccount accepts address(0) from ecrecover and pays outEtherspot CredibleAccountModule — [H-01] no check for userOp / userOpHash mismatch nor sender validityEtherspot CredibleAccountModule — session owner can consume a sibling sessionEtherspot CredibleAccountModule — session-key approval drains the walletEtherspot GasTankPaymaster — user withdraws before sponsored gas repaymentEtherspot ResourceLockValidator — replayable signature proofEYWA — notifyRewardAmount pays stakers 200 EYWA instead of 1,000EYWA EscrowManager reentrancy — AuditVault 44334EYWA EscrowVoteManager poke DoS — AuditVault 44337Folks Finance borrow balance omits interest — AuditVault 61079Folks Finance loan-health underestimation — AuditVault 61051Folks Finance mixes stable and variable debt — AuditVault 61091Gacha _swap sets its own slippage floor from the spot priceGachaTickets — swap quotes the reserves in the wrong orderGachaToken — anyone can burn another holder's Gotcha tokensgetPositionValue ignores Uniswap fees, so a healthy position is liquidatedGigaverse — anyone can retarget a name and take its 100 ACCT escrowGigaverse — mintBatch does not update MINT_COUNT_CID, so a later mint exceeds max supplyGigaverse — mintUsername charges 0 for a name listed at 0.005 ETHHanji LOB: getTraderBalance is stale during the withdraw callbackHanji LOB: receiveTokens credits fee-on-transfer tokens for more than it receivedHeroERC721A — free mint wipes the paid counter and doubles the RING capHORS Exploit — Unprotected, Attacker-Callback 0xf78283c7 Drains the Pool's LP TokensIPSeed tokenId reconfiguration drain — AuditVault 31585IQ AI — Adversary can win proposals with voting power as low as 4%JPulsepot / FortuneWheel Exploit — Permissionless swapProfitFees() + Spot-Price Fee SizingKarak increaseBalance share loss — AuditVault 38492LAURA Token Exploit — Permissionless removeLiquidityWhenKIncreases() Reserve BurnLiquid Ron — totalAssets wrong when operatorFeeAmount > 0LPMine Exploit — Reward-Time Desync + Pool-Balance Reward Valuation Drains the Reward PoolMCAI tax-wallet allowance bypass — privileged transferFrom drains the Uniswap V2 pairmintUsername keeps 1 ETH and the NFT has no withdrawMismatching data location during inheritance — AuditVault 50685Mosca Exploit — exitProgram() Pays Out Internal Credit That Was Never Backed by a DepositMosca Exploit — Self-Compounding join() Balance Inflation Drains the TreasuryNext Generation — Cross-chain signature replay via user-supplied domainSeparatorNotional v4 — redeemNative reentrancy freezes yield tokensOdos Limit Order Router Exploit — Public ERC-6492 isValidSigImpl(... allowSideEffects = true) Arbitrary-Call DrainOmo — anyone can redeem another user's shares and take the assetsOmo — getUSDValue ignores token decimals and prices 1,000,000 USDC as 1e12Omo — the oracle reads the factory and lends 100 USD against a 1 USD poolOmo — topOff burns assets instead of shares, and Bob's 200 is stuckOmo borrow leaves totalAssets inflated by the amount sent to the agentOmo topOff locks a redeem that names another receiverOmo: unrestricted onERC721Received locks 1000OmoOracle prices liquidity from slot0, so a same-transaction swap mints extra debtOmoRouter transferFrom spends a victim's allowance to the routerOmoVault — topOff only accepts agent id 0, so users cannot redeemOpenTrade rollover loan-address validation — AuditVault 47890Ostium — shorts keep 300000 USDC when the funding rate is negativeParibus Exploit — Algebra/Camelot LP-NFT Collateral Priced from Manipulable Spot PricePeapods: dead shares minted to the caller let that caller take 3.92 ether from the next depositorPeapods: Fraxlend ratio applied after the inversion borrows 150 instead of 37.5Peapods: leave-as-paired fees revert debond and lock the bonded PEASPerennial intent fees are withdrawn before they hit collateral, and the referrer takes 100 from LPsPerennial: a protected liquidation stores a 262-1 long and takes the maker cashPike: a donated balance makes the next deposit mint zero pTokensPredictable token address enables liquidity front-run — AuditVault synthetic reductionPrime Vaults — removed strategy remains callable during withdrawalPufferVault partial withdrawal failure — AuditVault 38286Pyth price and exponent mismatch — AuditVault 51982Pyth validation is not payable — AuditVault 51984Reduced plugin price leaves excess payment trapped — AuditVault synthetic reductionRoulettePotV2 Exploit — Permissionless swapProfitFees() Drained Through a Manipulated WBNB/LINK Spot PriceSession key can be consumed by another smart wallet — AuditVault synthetic reductionShiny Pawn — off-chain offer amount creates underwater loansShiny sRWA — blacklisted operators cannot be revoked and can steal NFTsSorra Staking Exploit — Reward Recomputed In Full On Every Partial withdrawStackingSalmon — ETH-priced native ante bricks the warn swapStackingSalmon: Kodiak fee basis points are read as a Uniswap denominatorStake.Link — instant withdrawals can burn LST while stranding underlyingSurge — [H-03] Unstake causes all users to lose their rewardsSwitchboard reward manipulation — AuditVault 47980Tapio: the first mint rounds the next depositor's shares to zeroThe Idols NFT Exploit — Self-Transfer Reward Double-Claim via delete claimedSnapshotsThe pod compounder swaps again while pTKN is left over, and 12,925 pTKN stays stuckThree intents each pass a 40 collateral check and the maker withdraws 20 of LP fundsToki Bridge — malformed recipient bytes silently burn tokensUniLend V2 Exploit — Collateral Self-Withdrawal via Flawed Health-Factor AccountingUSDT claim underflows when contract has a larger balance — AuditVault synthetic reductionZero-value transfer doubles staking rewards — AuditVault synthetic reductionA six-token QuantAMM swap reads a zero multiplier and pays 1.03 instead of 1Across SpokePool: claimRelayerRefund clears the wrong refund slot and can be repeatedBakerFi: redeem pays 1e18 raw USDC for one 18-decimal shareBizness Locker Exploit — Reentrancy in splitLock Refund Drains Locked TokensBTC24H Lock Exploit — Access-Control-Free claim() Drains a Token Vesting LockClober DEX Exploit — Rebalancer._burn Reentrancy via Attacker-Controlled burnHookCod3x — debt totalSupply is scaled by the liquidity indexCod3x — handleAction underflows and sticks a minipool withdrawCod3x LendingPoolConfigurator — updateAToken stores the wrong reserve indexCod3x RewardsDistributor — dust supply overflows the uint104 index and locks the claimCod3x: _afterTokenTransfer adds shares to an underlying balance and pays Bob 400 for a prior balance of 0Cod3x: a flash loan pulls 1000 out of the vault and handleRepayment never puts it backCork — Attacker can perform MEV by providing amountOutMin = 0 for ERC-2612 permit swapsCork — Insufficient slippage protection in redeemEarlyLv leads to MEV via flash swapsCork — Reserve sales vulnerable to MEV due to missing slippage protection in _sellDsReserveCove: the target-weight check ignores a pending redeemEnjoyoors — claimWithdrawal pays before the request is marked claimedEnjoyoors — rebase rewards sit above userSupply and cannot be withdrawnEthSign Launchpad — a whitelist signature can be front-run by another callerFEG SmartBridge — Wormhole relayer allowlist pollution → forged withdrawg8keep buy(pool) mints 1,000,000 LP against an empty balanceg8keep migration reverts on a 1-wei swap and leaves 1,000,000 tokens in the old poolGemPadLock reentrancy (Dec 2024) — multi-chain ~$2MJHY Token Exploit — Dividend Pool Drained via 100× Over-Credited distributeCAKEDividendsLABUBU Exploit — Self-Transfer Balance Inflation via Stale Cached BalancesMoonHacker Vault Exploit — Unauthenticated AAVE Flash-Loan Callback Drains the VaultNFTMirror — Anyone can re-mint a token that was burned by the ownerNFTMirror — lzReceive for releaseOnEid results in OOGNFTMirror: executeCallback on the native NFT rolls back the ownership update, so the old owner still pulls 1000Non-payable batch sender blocks result submissions — AuditVault synthetic reductionPledge Exploit — Permissionless swapTokenU() Drains the Contract's Token HoldingsQuantAMM: missing onlyVault lets a caller pop every depositor's FeeDataReentered leverageStrategy leaves 10 LST stuck in cNuma and drops the vault priceRemoving QuantAMM liquidity reverts on a 1 wei admin-fee cap and locks 1,000 tokensSlurpyCoin Exploit — Attacker-Timed Token-Owned BuyOrSell Pool ManipulationSolady — a calldata slice is not an ABI arraySolady — isValidERC6492SignatureNowAllowSideEffects allows arbitrary calls via a crafted signatureSolady Timelock — cancel(bytes32(0)) lets a canceller become proposer and executorSurge — a claimant takes rewards funded after they unstakedSurge — public collectFees with amountOutMin 0 lets the caller take 4 fee tokensTransferring a QuantAMM LP NFT resets the uplift deposit and the withdrawal pays 999.5 instead of 820Validator proof duplication bypasses consensus — AuditVault synthetic reductionVyper Boost — buyAndBurn does not send VYPER to the treasury0x Protocol "Settler" Exploit — Arbitrary External Call via BASIC Action Drains a Leftover ApprovalA donated reward overflows the uint151 yield accumulator and locks the depositA partial loss resets the complete-loss counter and a stale position takes the refillAkashaOFT (AK1111) Exploit — Permissionless nonblockingLzReceive1() Free-Mint BackdoorAutonomint — ABONDToken::transferFrom corrupts userStates and enables Treasury ETH theftAutonomint cross-chain price desync — AuditVault 45459Autonomint downsideProtected DoS — AuditVault 45461Autonomint excess profit withdrawal — AuditVault 45458Autonomint odos data manipulation — AuditVault 45457Autonomint redeemYields accounting — AuditVault 45456Autonomint withdrawUser deduction — AuditVault 45460Autonomint: a lossy CDS withdrawal corrupts totalCdsDepositedAmountAutonomint: a Type-2 liquidated borrower can still withdraw its collateralAutonomint: borrower downside protection is recovered into the whole CDS poolBalmy: cToken collateral is priced 1e10 too low and 1 DAI seizes 2e8 DAIBando — fulfilled beneficiary balances cannot be withdrawnBando — service fees locked in the routerBracket receives unlimited StopLimit allowance — AuditVault synthetic reductionBridge pays 99,000,000 units instead of 990,000ChiSale Exploit — Revenue-Share Computed on Full msg.value (Self-Referral ETH Drain)Clave: executeTransactionFromOutside pays 1000 twice from one nonce-0 signatureCoW Protocol Solver-Router Exploit — Unvalidated uniswapV3SwapCallback Drains Settlement's Residual WETHDeltaPrime Exploit — Unwhitelisted claimReward() Pair + Cross-Function Reentrancy Drains a SmartLoan's Borrowed Funds as "Reward"ERC1967Proxy (0xb7E1…) Exploit — Unauthenticated "Order Settlement" Drains Proxy ReservesEYWA — createLock credits a poisoned vesting wallet that never sends its tokensEYWA — expired locks keep directing gauge rewardsEYWA — ProposalManager.CLOCK returns the block numberHats Signer Gate — detaching the gate leaves a former hat owner in control of the SafeMatez Staking Exploit — uint128 Truncation Lets Anyone Stake "for Free"MFT Token Exploit — Burn-on-Sell sync() Drains the PancakeSwap PairNFTG Presale Exploit — Mispriced PresaleWithUSDT() Pays ~13× the USDT DepositedOku — Failure to reset unspent approval to the target address wipes the contract balanceOku — stop-limit and bracket orders share one id and a cancel pays twiceOku OracleLess: a cancelled order can be modified to withdraw its escrow twiceOku OracleLess: procureTokens pulls from the order recipient, letting an attacker steal a victim's approved tokensOracleLess executes attacker-controlled target — AuditVault synthetic reductionOrder fill/modify reentrancy steals collateral — AuditVault synthetic reductionPolter Finance Exploit — Spot-Reserve Price Oracle Manipulation Drains an Aave-V2 Lending MarketPrimev — Overpayment to bidder in slash due to incorrect amount transferRichPip (RPP) Token Exploit — Sell-Triggered LP Burn Pumps a Self-Manipulated PoolSelf-lending deleverage redeems leftover pods and leaves 980 pair shares unpaidStake319 (X319) Exploit — Permissionless claimEther() drains the contract's BNBSuperfluid Locking — Fontaine never stops flows; deposit buffer is permanently lostSweep n Flip — LayerZeroAdapter.executeMessages irrecoverable stateSweep n Flip — Premature createPair creates unusable delegated pairsSweep n Flip — probe royalty amount is used as the percentageSweep n Flip Bridge — Permanent failure to bridge wrapped ERC721Sweep n' Flip — WERC721.royaltyInfo pays 0.1% when the bridge stored 1%uint256 amount truncates to uint160 — AuditVault synthetic reductionvETH (Lambo.win) Exploit — Unbacked takeLoan via addVirtualLiquidity Inflates an AMM PairVRUG ("Vitalik's Rug") Exploit — Unsynced UniswapV2 Reserve Donation HarvestA 101-token front-run makes one block pay 100,101 incentive tokensAIZPT314 Exploit — ERC-314 "Buy Mints 2× From Reserve" Price-Skew DrainAn ERC-6492 spend approval calls the wallet and moves 10 WETH to the spenderAn unbalanced LP position makes the AMO quote 4,000 liquidity for 1,000 USD, and the USD stays putAXION buyback liquidity burn — AuditVault 43530Bad-debt liquidation burns 60 treasury shares instead of 10 and the LP is overpaidBiconomy Nexus — a fallback call skips the ERC-7484 registry and an unregistered module moves the tokensClaiming the vested usualS balance first makes the accrued USUAL unclaimableCoded Estate — long-term cancel refunds USDC for a junk bookingCompoundFork (Pike Finance "uSUI") Exploit — Spot-Price Oracle Manipulation of a Compound v2 ForkDebita: burning the veNFT receipt locks 100 AERO that lenders are supposed to claimDYAD — withdrawing before the reward claim pays 0 instead of 1,000 KEROSENEErc20transfer Exploit — Permissionless Arbitrary transferFrom Drainer (amount==0 ⇒ "take it all")FireToken Exploit — Deflationary "burn-from-pool + sync()" AMM Reserve DrainHYDT Protocol Exploit — Spot-Reserve Oracle Lets initialMint() Print HYDT at a Manipulated BNB/USD PriceLava Lending Exploit — Flash-Inflated Uniswap-V3-LP Collateral Drains an Aave-V2 ForkLevel — mintlvlUSD replaces the slippage floor with the slippage itselfMorphoBlue PAXG/USDC Market Exploit — Misconfigured Oracle (1e12 Decimal-Scale Error)Nexus: fallback's assembly return skips the hook and the module keeps 100 tokensOne distributeFor pays 500 BGT because the block increments too lateOra AI (ORAAI) Exploit — Permissionless stuckToken() Allowance Grant Drains the Uniswap PairP719 Token Exploit — Sell Price Inflated by an Un-Compensated Burn Inside transfer()Sablier Flow — Sender can brick a stream by forcing an overflow in the debt calculationSASHA Token Exploit — Draining a Deployer-Seeded, Massively Mispriced Uniswap V3 PoolSuperposition Seawater — createPoolD650E2D0 reverts because the Solidity and Stylus signatures disagreeTitanX Farms — 1 USDC of collected fees is credited as 0Victim pays 1,000 payout tokens and receives 1 wei of feesVista Finance Exploit — Flash-Mint Burns Through the Staking Lock to Sell Free Collateral0x16D0… Exploit — Permissionless multiCallWithRevert Arbitrary-Call Allowance Drain0x71cd Swap-Helper Exploit — Permissionless pancakeV3SwapCallback Drains a Pre-Approved VictimAIRBTC Exploit — Permissionless done() Token-Sweep Drain of a Helper ContractBankroll Network Stack Exploit — Self-Buy Dividend Inflation via buyFor(bankRoll, …)Bedrock DeFi (uniBTC) Exploit — mint() Prices Native ETH 1:1 as Native BTCCaterpillar Coin (CUT) Exploit — LP-Removal "Value Preservation" Mints Free TokenscloseTradeMarket quotes a zero LINK fee and the 1000 USDC close never settlesCoinbase Session Keys — a permission drains an approval given to a non-allowlisted paymasterDOGGO Exploit — Attacker-Triggered Tax Auto-Sell Self-SandwichDYAD — a 1 wei Uniswap stake claims the entire kerosene supplyDYAD — initialize credits lastXP and drops the elapsed bonusDYAD UniswapV3Staking — users cannot stake a Uniswap V3 positionHANA Token Exploit — Tax-Swap Self-Dump Price Manipulation via Forced Auto-SellINUMI Exploit — Unprotected setMarketingWallet() Hijacks the rescueEth() RecipientKakarot — precompile allowlist keys the caller code addressMARA (MaraToken) Exploit — Permissionless Mint via an Unprotected "Buy" Proxy that is a Token KeeperOnyx Protocol (OnyxDAO) Exploit — Empty-Market Exchange-Rate Inflation + Attacker-Controlled oTokenRepay LiquidationOTSea Staking Exploit — claim() Re-Arms Already-Withdrawn Deposits (Double-Withdraw Drain)Penpie Exploit — Fake-Market Reward Inflation via Attacker-Controlled getRewardTokens()PESTO (Pesto The Baby King Penguin) Exploit — Flash-Loan-Driven Tax Auto-Swap Self-SandwichPlanet Finance (PLN) Exploit — Zero-Amount Transfer Triggers Uncompensated Pool BurnPythia Staking Exploit — Reward-Debt Reset via Receipt-Token TransferShezmu Exploit — Unprotected mint() on the Vault Collateral TokenSmartSession — a userOp time window is overwritten, so 1,000 USDC still movesSmartSession enable-mode can be frontrun to install signed policies under a different permissionIdSmartSession ERC-7739 — a signature for account A spends account B's 1,000 USDCSmartVaultV4 — Gamma collateral is skipped by liquidationSniper-Bot Exploit — Unprotected Arbitrary-Call Function Drains a Standing WETH AllowanceTalentir — canceling order B locks order A's 100 TOKENUnverified 0x03F9… Exploit — Permissionless Uniswap V3 Swap-Callback WETH DrainUnverified 0xb309…28Cb MEV Router — Unprotected uniswapV3SwapCallback Token DrainWXETA (Wrapped Xeta) Exploit — Unprotected Diamond-Facet initialize() → Unlimited Mint → AMM Pool Drain0x8DE7…34E9 Exploit — Permissionless grantRole Lets Anyone Self-Grant Admin and Drain the Bridge/Custody HandlerA 1 wei deposit moves a 100 ether referrer score and claims the rewardsA 1 wei vote after shutdown lets cancel wipe Lewis's 2 ETH claimA Bunni rebalance fulfiller mints shares before tokenOut is credited and extracts 150A Flayer relist with created set to uint32.max blocks collection shutdown and locks 1000 floor tokensAAVE ParaSwap Repay Adapter — Lingering Allowance + Arbitrary-Call Collateral DrainAcross withdraws an 18-decimal gas fee in the custom token's own decimalsBoba — a wrapping native sum drains 100 ETH from the L1 poolBoba — the wrong ERC1155 selector keeps 1000 tokens on L1Bunni: switching referrer pays the old score a second timeCOCO COIN Incident — Abused USDT Allowance Drained via the COCO/USDT PoolConvergence Finance Exploit — Unvalidated claimContracts Lets a Fake Staking Contract Mint the Entire Staking AllocationCork: emptyReservePartial returns 0 and the last LV redeem locks 10 RACork: repurchase counts 3 RA of fee twice and the last depositor is shortERC20 spending limit — a fresh 100 USD limit still locks a 30 USD spendFlayer protected unlocks get cheaper after the listing count is checkpointed too lateFlayer: a protected listing is unlocked for the raw principal and the compounded fee is never paidFlayer: a second collection shutdown reuses the old sale and pays out 1100 ETHFlayer: a wrapped shutdown quorum pays 20646 ether on a 1 ether saleFlayer: collection initializer liquidity is owned by the implementation and cannot be removedFolks Finance: swapped stable-borrow indexes turn a 200 debt into 50 and release 80 moreiVestDAO Exploit — skim() Re-Routed Through a Reflection Token's Burn-Donation HookNative-token withdrawal approves the token manager and the maker refund stays in the poolNovaX M2E Exploit — Stake/Withdraw USD-Value Sandwich via Manipulable AMM OracleOMPxContract Exploit — Purchase/BuyBack Price Asymmetry Round-Trip DrainOrder update records 0.3 WNT and refunds only 0.001Pepper — minting limit uses totalSupply, blocking legitimate minter airdropsPhi — Exposed public _add/_removeCredIdPerAddress bricks victim sellsPhi — Forced endTime extension in updateArtSettings allows attacker to mintPhi — reentrancy bypasses the cooldown, enabling flash-loan-style reward extractionPhi — Reentrancy in creating Creds allows an attacker to steal all Ether from the Cred contractPhi — shareBalance bloating eventually blocks curator rewards distributionPhi — signature replay in createArt allows impersonating the artistPhi — signature replay in signatureClaim ignores chain idPhi updateArtSettings — a post-mint royalty hike takes 1000e18 of a saleReserve leaves the listing in place, so the NFT is sold again and the seller is paid twiceRoyco — fillLPOrder credits the whole requested amount as a feeRoyco ERC4626i — Missing permissions check in withdraw and redeemRoyco ERC4626i — User rewards can be permissionlessly erasedRoyco RecipeOrderbook — a null Weiroll market still pulls incentivesRoyco RecipeOrderbook — successful transfers on non-existent tokens let attackers steal reward tokensRoyco: the first protocol-fee claim bills the campaign end timestampSmart Sessions — enableSessions installs a second module and drains 1000 USDSmart Sessions — forward removal leaves a signer who pulls 900 USDSofamon GachaMachine — msg.value is spent twice inside one batchSofamonExchange — fillAskOrder lets the filler take more than the orderTadle — a partial settleAskTaker pays the taker's collateral to the bid makerTadle — closing an aborted bid pays the collateral premiumTadle — DeliveryPlace::settleAskTaker has incorrect access controlTadle — DeliveryPlace::settleAskTaker() mistakenly uses makerInfo.tokenAddressTadle — formulaic error rounds down, causing total loss of funds for bid takers during abortThe second same-block listing stores checkpoint 1 and locks 1 CTThe top bid cancels the next bid before K epochs and harvests the feesUniActionPolicy — two spends move 120 USD through a 100 USD limitVOW / Vow Finance Exploit — Permissionless 100× VOW→vUSD tokensReceived Mint MispricingYodl Router Exploit — Permissionless transferFee() Drains Pre-Approved User AllowancesZenterest Exploit — Stale-Oracle Collateral Mispricing on a Compound ForkA Zaros trader flips a long into a larger short while the market is disabled and posts 2,000 USDCArkProject NFT Bridge — The bridging process will revert if the collection is matched on the destination chain and not on the source chainBasin — Incorrectly assigned decimal1 in decodeWellDataBasin — WellUpgradeable can be upgraded by anyoneCasimir: a full validator return leaves the operator registered and still paidCasimir: an unclaimed delayed balance is counted twice in rewardStakeRatioSumCasimir: staking and unstaking in one transaction forces a validator exitCentrifuge — any caller can spend an opened vault through the routerCentrifuge — transferAssets cannot pull the TransferProxy balanceCommon Pool — signature omits nonce/expiry and can be reusedCyber Finance: a reward token with no bool return, or a fee, stays locked in the distributorDeFiPlaza Exploit — Constant-Product swap Degenerates When the Input Reserve Is Drained to ZeroDoughFina Exploit — Permissionless Flash-Loan Connector Drains Any User's DSAFolks Finance: ten zero-fAmount deposits make 1 ETH of collateral count eleven timesGains — aggregator storage overwrites the OTC ownerGAX Swap Exploit — Caller-Dictated Output Amount With No Input/Price CheckGorples — missing xBorpaBalances decrement in finalizeRedeemForgTrade charges 250 DAI instead of 500 DAI when a pre-v9.2 position is increased and closedHeurist — mint pays the referral fee to any addressHeurist — one partner NFT mints again after each transferHeurist — partnerFreeMint reenters before lastMinted is setKarak — [H-02] An operator can create a NativeVault that is silently unslashableKarak — [H-03] A DoS on snapshots due to a rounding error in calculationsKarak — [H-04] Violation of Invariant Allowing DSSs to Slash Unregistered OperatorsLI.FI Protocol Exploit — Arbitrary External Call via Unvalidated depositToGasZipERC20LinkingTheWorld (LW) Exploit — _internalSwap Underflow Mints Infinite Self-Balance & Drains the Fee PoolLucidly — addLiquidity solves supply with the wrong balancesLucidly — addToken updates supply with the old amplificationLucidly — removeLiquidity prices the burn with totalSupplyMEV Bot 0xDd7c…3685 Exploit — Forgeable Uniswap-V3 Callback AuthenticationMinterest (Mantle) Exploit — Stale Exchange-Rate in lendRUSDY Inflates mUSDY CollateralMRP / WMRP Exploit — ERC314 Add/Remove-Liquidity Reserve Drain via Re-entrant Self-BuyNLX — non-refunded excess fee in _setPricesFromPriceFeedsSmartBank (SBT) Exploit — Self-Referential Spot-Price Oracle ManipulationSpectra Finance Exploit — Arbitrary External Call via the Router's KYBER_SWAP CommandStarklane — the L1 bridge cannot hand off its ERC721TempleGold — incompatibility with multisig wallets in send()Tokemak: empty reward window strands 500Tokemak: removing an empty destination drops 250 rewardsTokemak: streaming fee on total assets pays the sink 99999999999999999999TraitForge — Buyer burn/nuke slashes original minter's airdrop allocationTraitForge — incorrect percentage calculation in NukeFund and EntityForgingTraitForge — the maximum number of generations is infiniteTraitForge generation count reset lets forged entities bypass the capTraitForge generation rollover is permanently blocked by the wrong modifierTunnl: creator payment divides by the creator feeUnverified MEV/Arb Contract 0x452E25… — Unauthenticated uniswapV3SwapCallback Drains Its Own WETHZaros — draining the protocol fullyZaros — incorrect logic for checking isFillPriceValidZaros — LiquidationBranch::checkLiquidatableAccounts() array out-of-boundsZaros — SettlementBranch._fillOrder does not guarantee collateral covers the future liquidation feeZaros — wrong parameter passed in TradingAccount::deductAccountMarginA liquidated NFT keeps its reward weight and is paid 5 ZERO after collateral is wipedAltr: a documented 4% grace fee charges 4,000 on a 1,000 debtAPEMAGA Exploit — Public family() Backdoor Burns 99.9% of the Pool's Token ReserveArkham bounty: 900 of 1,000 excess tokens stay locked after closeAstrolab — Accounts not properly removed from roles upon revokingBazaar (Ryolo LBP) Exploit — Missing exitPool Authorization Burns a Victim's Pool Shares to the AttackerCRB2 Token Exploit — Fee-on-Transfer Reflection Drain via Self-sellToken LoopDevve — airdrop withdrawal counts minutes as daysDevve — settlement pays the claimed amount, not the ETH receivedDevve Treasury — settlement pays USDT with no decimal scaleDyson.money Exploit — Permissionless harvest() Sandwich Steals Pending Yield from a Near-Empty VaultGondi — a collateral id outside the range still opens a loanGondi — anyone can set the Lido APR to 0HandleTokenMintAndSwap decodes a 1,000 token mint and credits 0Hinkal: moving a nullifier into tokenIds duplicates a 1,000,001 USDC noteINcufi (AkitaDefender) Exploit — Self-Referral Commission Farming + Un-collateralized 1:1 swapCommisionJokInTheBox Staking Exploit — Missing unstaked Guard ⇒ Infinite Re-Unstake DrainMineSTM Exploit — sell() Redeems the Protocol's Own LP at an Attacker-Manipulated PriceNCD Exploit — Uncapped Self-Mint Staking Reward Farmed Across Disposable ContractsNiftyApes — a second Seaport offer item locks 500 SIDENotional — Pendle PT redemption accepts any SY outputNotional Leveraged Vaults (Kelp) — a dust withdrawal request permanently freezes the real oneNotional PendlePTOracle — a 6-decimal PT is priced with an 18-decimal rateNotional vault rewards — a grief pays the shareholder nothingNotional vaults — a public getReward leaves 1,000 AURA stuckNotional: a split vault-share withdraw is valued in the wrong decimalsNotional: post-expiry PT rate is hardcoded to 1.0Pheasant — a zero block hash invalidates a 250 bUSD proofPheasant: reentrancy lets a relayer pull 90 from a 100 bondRadiant — UniV3TokenizedLp initial donationRadiant — zapWETH never approves TokenizedLpSerious — locking other tokens' collected ETH by triggering createPoolAndAddLiquidity twiceSerious — Uniswap's pool can be initialized with a different priceStargate V2: _getPoolBalance treats a direct transfer as liquidity, so a redeem pays an extra 1000SteamSwap (MineSTM) Exploit — sell() Redeems the Protocol's Own LP To Any CallerUwuLend (2nd hack) — Hardcoded $1.04 sUSDE Oracle + Live 80% Liquidation ThresholdUwuLend Exploit (#1) — sUSDe Oracle Manipulation via Curve Spot Prices in the MedianVelocore V2 Exploit — feeMultiplier Overflow Turns a Withdrawal Into a Pool DrainVultisig — adversary can prevent the launch of any ILO pool with enough raised capital, at any moment, by providing single-sided liquidityVultisig — most users won't be able to claim their share of Uniswap feesVultisig — whitelist index zero lets every unlisted buyer purchaseWIFCOIN (WIFStaking) Exploit — Time-Ungated claimEarned() Reward Loop Drains the Staking PoolWILL "Trading" Exploit — Over-Sized, Slippage-Free settleExpiredPositions() Buy-Back SandwichYYS / YYSCoin Exploit — sell() Returns the Tokens It "Sold" (Double-Payout Drain)ZeroLend: max repay clears a 2 token debt after paying 1 shareZeroLend: the first supplier withdraws 50 after bad debt and the other is left with 14AdapterVault — proposer pregen_info forces a pool buy and extracts 3002 assetAleo — a fixed 10-credit split fee fills the block ahead of liquidationElfi — batchUpdateAccountToken credits a balance and the vault pays itELFi: a -110 margin update leaves WETH at 0 instead of 30ELFI: from-balance is incremented instead of set to the remainderELFI: pool value ignores open fundingEthSign Launchpad: a claimer is charged for zero-value claimsEXcommunity (EXboy / EXgirl) Exploit — purchasedAmount Inflation via Zero-Value transferFrom + Pool DonationFolks Finance — collateral value skips token decimalsGalaxy Fox (GFOX) Exploit — Permissionless setMerkleRoot() Lets Anyone Forge an Airdrop ClaimGPU Token Exploit — Self-Transfer Balance DoublingIntentX: minting xINTX updates reward token id 0 and the new stake takes 1,000Linea TokenBridge — ERC721 becomes permanently one-wayLiquidity Tokens (TLN / VOW / VUSD) Exploit — LP-Stake Reward Inflation & 1:1 TLN→vUSD RedemptionLucidly — supply iteration returns inside the token loopMetaDragon (P404) Exploit — Permissionless NFT Burn Mints Free ERC20MixedSwapRouter Exploit — Arbitrary transferFrom via Fake "Pool" + Same-Token PathMunchables — Invalid validation allows users to unlock earlyMunchables — Malicious user can call lockOnBehalf to repeatedly extend a user's unlockTimeNORMIE Exploit — Phantom Self-Mint via the premarket_user Flag + skim() RecyclingOlas: removing a nominee does not reduce pointsSum.slopeOSN Exploit — LP-Dividend Farming via Instant setBalance→processAccount Reward PayoutOverprotocol — a contract restore target sticks the server's feeOverprotocol — one RestoreData signature moves the balance twicepNetwork Burner Exploit — Permissionless convertAndBurn() + Slippage-Free Kyber Trade → SandwichPredy Finance Exploit — Permissionless Pair Registration + Lock-Settlement Bypass Drains the Shared PoolRedKeys Game Exploit — Predictable On-Chain "Randomness" Lets the Player Always WinSATURN Token Exploit — AutoNukeLP Burns the Pool's Reserve on Every SellSCROLL Token Exploit — Uniswap UniversalRouter Drained via a balanceOf == type(uint256).max Trap TokenShido WSHIDO — transferFrom moves tokens when allowance is zeroSonne Finance Exploit — Empty-Market Exchange-Rate Inflation (CompoundV2 Donation Attack)TCH Exploit — Signature-Replay Loophole + Pool-Reserve _burn/sync() Price ManipulationTGC Exploit — Broken Pledge-Reward Math Mints 113,000× the StakeTrade On Orion (Orion Protocol BSC) Exploit — redeemAtomic Missing Position Check + Liability-Free requestReleaseStakeTSURU Wrapper Exploit — Unprotected onERC1155Received Free-Mint Drains the LPAlchemix: the swap fills at 1980, below the 2475 alUSD floorATM Token Exploit — Forced Zero-Slippage Auto-Swaps Drained via transfer + skimBigBangSwap Exploit — sellRewardToken Pays Out Against a Richer Pool Than the Seller Bought FromBNBX Exploit — Unprotected Public transferFrom Drains Every ApproverCatalyst — mint locks the free premint above the stored valueChainge Finance Exploit — Arbitrary External Call in MinterProxyV2.swap() Drains ApprovalsDYAD — Flash loan protection mechanism can be bypassed via self-liquidationsDYAD — Initialization of DyadXPv2 is impossible (unbounded init loop DoS)Ethos: growing delegatedValidators blocks a slashEuler PSM — a 6-decimal underlying is quoted as if it had 18FIL314 Exploit — Permissionless hourBurn() Crushes the Self-Contained AMM ReserveGFA (Generation Finance Academy) Exploit — Permissionless setReward / generateReward Self-MintGondi — a lender tranche is added without the borrowerGondi — a signed 365-day offer is filled for 730 daysGondi — distribute() lacks access control (Pool accounting corruption)Gondi — front-running repayLoan via loanId rotationGondi — incorrect _pendingWithdrawal accounting in queueClaimingGondi — liquidation drops the protocol fee and shorts the poolGondi — mergeTranches reenters and double-books one NFTGondi — one lender signature opens a second trancheGondi — refinanceFromLoanExecutionData missing tokenId checkGondi — settleWithBuyout skips LoanManager.loanLiquidationGondi — the exact expiry second is both liquidatable and still liveGondi — triggerFee stolen from other auctions in settleWithBuyoutGondi — validateOffer reentry inflates the exchange rateGondi Pool — recycled withdrawal queue keeps stale accountingGROKD Exploit — Permissionless updatePool() + depositFromIDO() Reward Pool DrainHackathon Token Exploit — sender == recipient == pair Double-Credit Balance Inflation via skim()Hedgey Finance Exploit — Dangling Approval to Attacker-Controlled tokenLockerHoppy The Frog Exploit — Tax-Token Auto-Swap Reserve ManipulationHydro — anyone can clear a DenyList entry and move the frozen balanceMARS Exploit — Flash-Loan Reflection/Reserve Desync on a Fee-on-Transfer PairMellow — a permissionless rebalance swaps out the victim NFTNetMind: one distribution signature pays the GPU provider twiceNGFS (FENGSHOU) Exploit — Permissionless Privilege-Escalation Chain → Unlimited MintOpenLeverage (OPBorrowing) Exploit — Self-Liquidation Bad-Debt Drain via 1inch-Callback Price ManipulationPike Finance Exploit — Unguarded initialize() → UUPS Upgrade Hijack → ETH DrainRenzo — incorrect withdraw queue balance in TVL calculationRenzo: filling the ERC20 buffer reverts completeQueuedWithdrawalRico / Ricobank Exploit — Arbitrary-Target flash() Drains the Bank's ReservesRunaAGI — FCFSMint does not check the whitelistSATX Exploit — Permissionless destroyPoolToken() Reserve Manipulation + skim() DrainSQUID Token Exploit — Permissionless 1:1 V1→V2 Migration + Public sellSwappedTokens DrainSumer Money Exploit — Reentrancy via repayBorrowBehalf Refund Inflates the ETH cToken Exchange RateUnverified Contract 0x00C409 Exploit — Manipulable AMM Callback Drains WETH ReservesUPS (UtopiaSphere) Exploit — Sell-Side _swapBurn Drains the LP Pair via skimWSM Presale Exploit — Spot-Oracle Price Manipulation in buyWithBNB() via Flash-Loan Pool CrashXBridge Exploit — Permissionless listToken() Hijacks Token Ownership Then Drains Bridge ReservesYIEDL SpotVault Exploit — Zero-Share redeem() Token-Drain via Attacker-Controlled Swap RoutingYield Protocol Strategy Exploit — Live-Balance burn() Donation InflationZ123 (SesameCloudToken) Exploit — Custom-Router update() Pool-Burn ArbitrageALP (ApolloX) Exploit — Public _swap() Drains the Portfolio Vault's LP TokensAmphor — claim functions don't validate if the epoch is settledAmphor — exchange rate is calculated incorrectly when the vault is closedAmphor AsyncSynthVault — delegated requestRedeem locks the assetsARK Exploit — Public, Rate-Limit-Free autoBurnLiquidityPairTokens() AMM Reserve DrainBBT Exploit — Permissionless setRegistry() + mint() Infinite-Mint DrainBinemon (BIN) Exploit — Permissionless sweepTokenForMarketing() Price-Manipulation ArbitrageCancelling an auction refunds 100 of a 5,000 unrevealed offer and keeps 4,900Canto — native gas tokens stuck in ASDRouter on successful redemptionCedro — liquidation bonus is zero above 100 percent LTVCedro — repay mints ceTokens the health factor never seesCedro Finance — repay is paused while liquidation stays openCurio Governance Token (CGT) Exploit — DAO Governance Takeover via Fake DSChief Vote + Timelocked vat.suck / DSToken.mintDittoETH — attacker games a stale updatedAt to dispute a valid redemption and steal the penaltyDittoETH — disputing a closed Short Record permanently locks its collateralDittoETH — flawed && check corrupts protocol-wide collateral/debt accountingDittoETH — partially filled Short Records created without a short order cannot be liquidated or exitedEigenLayer — Beacon chain withdrawals at lastWithdrawalTimestamp are lostETHFIN Exploit — Permissionless doBuyback() Buyback-Pot Drain via Holder-Count ManipulationGHT Exploit — Permissionless transferFrom Drains the Uniswap V2 PairGoat Tech — a higher athBalance leaves other pools on a stale boosterGoat Tech — A user calling Controller::dctStake can bypass tax by first transferring the tokens to be stakedGoat Tech — one DToken is counted as two votes when private mode is offGoat Tech — reinvesting ETH earnings does not keep the maxEarning cutGoat Tech — shared earnings leave that pool's fs staleIntrospectionToken (IT) Exploit — Inflationary Repricing Mint Drains the IT/USDT Pancake PairJuiceStaking Exploit — Uncapped stakeWeek Bonus Multiplier InflationLavaLending Exploit — WrapperOracle Price-Depeg Lets Manipulated LP Drain the Aave PoolMO Token Exploit — Self-Recycling Borrow Burns Pool Reserves to Inflate price() and Drain USDTParaSwap AugustusV6 Exploit — Callback Hijack Drains Pre-Approved User TokensPowerloom: one validator finalizes a batch by attesting twicePrisma Finance Exploit — Unauthorised MigrateTroveZap Flash-Loan Callback Drains Trove CollateralRadiant: quoteWETH returns 10 where the WETH reserve says 100RivusTAO — rebase turns a 20% APR into a 1.25 priceSSS Exploit — Self-Transfer Balance-Doubling Lets Attacker Mint Phantom SSS and Drain the WETH PoolTaiko — gas issuance is inflated and will halt the chain or lead to an incorrect base feeTaiko — Validity and contest bonds can be incorrectly burned for the correct and ultimately verified transitionTaiko — verifyProof can be front-run so the assigned prover is not paidTaiko — withdraw signature replays for another 30 TKOTaiko ERC20Airdrop2 — the full claim is stuck once the window closesTaiko L1 — proposer charges another account's prover feeTGBS Exploit — Repeated Permissionless Pool Burns via Self-Transfer Draining the TGBS/WBNB PairUnizen "UnizenIO2" Exploit — Arbitrary-Call TradeAggregator.swap Token TheftUnizen Exploit — Arbitrary call in the Unizen Aggregator Drains Any User Who Approved ItUnlocking an offer deletes it first and returns 0 of the 1,000 depositWooFi (WooPPV2) Exploit — Slippage-Model Price Collapse DrainWOOFi Swap — pool can be drainedZap TokenSale — tax refund stuck when the sale does not oversellZap TokenSale — tax refund uses the wrong baseZongZi / ZZF Exploit — Manipulated-Price Reward Drain via burnToHolder + receiveRewardsADC Exploit — Permissionless calcStepIncome() Drains the MainPoolAffine DeFi LidoLevV3 Exploit — Flashloan-Triggered upgradeTo Drains All Aave CollateralAstrolab — the flash-loan check makes the borrower return the principal twiceBabyloogn Exploit — Permissionless Airdrop Drain via Zero-Value NFT "Stake"Blueberry Protocol Exploit — Oracle Decimal Mismatch Enables ~$1.4M Under-Collateralized BorrowBurnsDeFi / BurnsBuild Exploit — Spot-AMM Price-Oracle Manipulation in burnToHolderCatalyst IPSeed — a caller-supplied curve drains the ETH poolCompound v2 cUNI Exploit — Stale-Oracle Discount Borrow (Open Oracle UniswapAnchoredView)DeezNutz (DN404) Exploit — Self-Transfer Balance Inflation in a Reflection-Fork of DN404DN404 Exploit — Unguarded init() Lets Anyone Re-init a Vesting Proxy and Drain Its TokensDualPools Exploit — Donation-Inflated Exchange Rate Lets 2 wei of dLINK Borrow the Whole PoolEGGX Exploit — ERC404 Flash-Mintable NFTs Drain a Per-NFT Token AirdropEntangle Trillion — callback reentrancy drains bridge withdrawalsEntangle Trillion — Curve/Convex withdrawal selector typo freezes LP exitsEntangle Trillion — dynamic delegatecall lets a compromised master drain CompounderEntangle Trillion — missing Stargate allowance blocks LP depositsFolks Finance — incorrect updates to pool.depositData.totalAmount during repay-with-collateralGAIN (GainOS) Exploit — Path-Dependent balanceOf Rebase Bug Drains the AMM ReserveGame (TheGame / Anciliainc) Exploit — Reentrancy + Stale bidEther Refund in makeBid()Kinto: a front-run leaves 1000 stuck in a wallet with no timestampKinto: resetting to one signer leaves policy 2 and sticks 1000Liquidating inside a transfer hook drains 1,000 cash the sender never depositedMINER (ERC-X / ERC404-style) Exploit — Fractional-Transfer NFT Mint/Burn Asymmetry Drains the Uniswap V3 PoolMINER (ERC404) Exploit — Self-Transfer Balance Inflation via skim()Music Protocol: redeeming a removed artist still pays 1,000 RECORDOne wei of an option blocks a liquidation and the 1,000 shortfall is paid from insurancePandora's Nodes 404 Exploit — transferFrom Allowance Underflow Lets Anyone Move Tokens Out of the PoolParticle — openPosition charges a fee on the user's own marginFromParticle getOwedFee — wrapped fee growth pays the LP 0 instead of 2999999999999999999Particle Trade Exploit — Forged-Lien accountBalance Mint via onERC721ReceivedPerpetual: two Pyth prices pay 150 on a 100 depositRio — settling an EigenLayer epoch does not increment it, so a later withdrawal reverts and 10 tokens stay in the queueRio Network — malicious operators can undelegate theirselves to manipulate the LRT exchange rateRio Network — reportOutOfOrderValidatorExits does not update the utilization heap orderRio Network — requested withdrawal can be impossible to settle due to EigenLayer share value appreciationRio Network — setting the strategy cap to 0 does not update total shares held or the withdrawal queueRio Network: swapped BLS keys are zeroed in the middle and 64 ETH stays in the beacon depositRuggedArt (RuggedMarket) Exploit — Reentrant targetedPurchase Buys NFTs With Self-Staked CollateralSeneca Protocol Exploit — Arbitrary External Call Abuses User ApprovalsSMOOFS Staking Exploit — Reentrant Withdraw() Drains the Reward-Token Pool via safeTransferFrom CallbackSwarm Markets (XToken) Exploit — Public mint() / burnFrom() Mint-and-Unwrap DrainTaiko — a repeated assignment hook drains the prover's TKOTaiko — block proposal spends a prover's allowance and takes 1000 TKOTaiko — ERC20 prover payment always revertsTaiko — SGX addInstances signature does not bind newInstanceTaiko: a recalled message leaves 1000 in the vaultTaiko: any caller can signal a 100 withdrawal from the bridgeTapioca BaseLeverageExecutor — WETH withdraw reverts with no receive()Tapioca DAO — Incorrect math means removeAssetFromSGL will never work once SGL has accrued interestTapioca DAO — Magnetar grants YieldBox approval but markets only accept pearlmitTapioca DAO — mintBBLendXChainSGL compose data.user not bound — force-lend victimTapioca DAO — OFT self-call makes Magnetar msg.sender and bypasses _checkSenderTapioca DAO — Unwhitelisted marketHelper returns malicious removeCollateral payloadTapioca GlpStrategy — deposits mint against a balance that hides GMX rewardsTapioca twTAP — anyone can claim an approved position's rewardsTapioca vesting — _vested pays 549 where the cap is 500ZoomerCoin Exploit — Spot-Priced Upfront Staking Reward Drained via AMM Price ManipulationAarna — passive rebalance zeroes token proportionsAarna — withdraw pays 400 of a 1000 entitlementAbracadabra / MIM Spell V2 Exploit — repayForAll Rebase De-sync + Rounding-Up Debt InflationAstrolab — deposit and redeem take 10 percent off the gross amountAstrolab — deposit preview fees the caller, execution fees the receiverAstrolab flashLoanSimple reverts because it transferFroms its own USDCAstrolab withdraw at the worst request price mints the next depositor 2,700 shares instead of 2,800Barley Finance Exploit — Flash-Loaned Collateral Double-Counted as bond() DepositBlast — _initiateBridgeERC20 encodes DAI as the local token, so the user receives DAI instead of USDBBlast — finalizeBridgeETHDirect compares msg.sender to the un-aliased L1 bridge and locks the depositBridge Mutual BMIZapper Exploit — Arbitrary External Call Drains Pre-Approved User FundsCitadel Finance Exploit — Spot-Price Oracle Manipulation in CitadelRedeem.redeem()Curio — earlyEndGame locks the 0.1 ETH game feeCurra — anyone can upgrade a proxy and drain itDAO SoulMate Exploit — Permissionless redeem() Drains the DAO's SetToken BasketDecent — Anyone can update the Router address in DcntEthDecent — Failed execute refunds a phantom source-adapter addressDecent — Missing min-gas checks permanently block the LayerZero channelFreedom (FREE / FREEB) Exploit — Slippage-less Treasury Buy at an Attacker-Manipulated PriceGamma Strategies (UniProxy / Hypervisor) Exploit — Spot-Price Vault-Share InflationINIT Capital — fillOrder executor front-run via limitPrice_e36INIT Capital — MarginTradingHook#updateOrder lacks access controlINIT Capital — Order creator can update tokenOut to arbitrary tokenLMCV — failed Hyperlane message replay mints dPRIME repeatedlyLQDX / LiquidXv2Zap Exploit — Arbitrary-account deposit() Spends Anyone's ApprovalMIC Token Exploit — LP-Fee Distributor Pays the Same LP Tokens Over and OverNapier — a 1-wei share and a 5 stETH donation round a 10 WETH deposit down to 1 shareNapier — base LP tokens are always valued at 3 PTNBLGAME (NblNftStake) Exploit — ERC721 onERC721Received Reentrancy Double-WithdrawOrbit Chain Bridge Exploit — Forged Validator Signatures Drain the ETH VaultPeapods Finance Exploit — Free Index-Token Mint via flash() + bond() Self-CollateralizationPersistence: empty funds list locks 100 of Alice's LSTRadiant Capital Exploit — Empty-Market liquidityIndex Inflation + rayDiv Rounding DrainRio Vesting Escrow — vaults can be bricked by selfdestruct()ing implementationsSHELL MEV-Bot Drain — Permissionless Arbitrage Function with Attacker-Chosen RecipientSocket Gateway Exploit — Arbitrary call in WrappedTokenSwapperImpl Drains User ApprovalsSubsquid — Gateway creator can steal all tokens from the GatewayRegistrySubsquid GatewayRegistry — re-register resets totalUnstaked and the same stake pays twiceSubsquid reports 50 computation units for a stake that only bought 10, and a 40-unit job releases 40 rewardSubsquid rewards — toBlock 0 lets a distributor pay the same blocks twiceSubsquid tSQD — anyone pins the L2 token, and the bridge mints itSubsquid WorkerRegistration — withdraw skips the lock when deregisteredAt is 0TRZN — RM_UpdateReward has no access controlTRZN — SellETH pays the risk manager before shares moveVertex PerpEngine — settlement pays the whole AMM instead of the LP shareWise Lending — Lending-Share Price Inflation via Deposit/Withdraw Rounding AsymmetryWise Lending Exploit — Lending-Share Price Inflation via Rounding Asymmetry + Bad-Debt DonationXSIJ (GGGTOKEN) Exploit — Repeatable, Un-reset autoBurnLiquidityPairTokens() Pool DrainZeroLend — Incorrect reward distribution when t == roundedTimestampZeroLend — Missing access control in afterLockUpdateZeroLend — the reward controller pays 0 while 1,000 ZERO sits in itZeroLend — ZeroLocker.merge() lets a staker inflate veNFT voting power ~9×ZeroLend distribute — a same-day checkpoint sticks 1000e18 of rewardsA 100 rebase makes removal underflow, and 1,100 stays in the poolAn unlocked virtual price reads 10 during removal and the metapool pays out 1,000BCT Token Exploit — Self-Funding Referral-Reward Drain of the Promotion PoolBeanstalk BIP-39 upgrade omits a modified facet, inflating grown Stalk 1,000,000xBeanstalk Silo — legacy milestone stem decimal mismatchBEARN/Bvaults convertDustToEarned() Exploit — Permissionless, Slippage-Free Dump of a Strategy's "Dust" BalanceBOBO_BOY (BOB) Exploit — Broken _transfer Fee Branches Desync Pool ReservesbZx / Fulcrum iToken Exploit — Empty-Pool Share-Price Inflation (ERC4626-style Donation Attack)CCV Exploit — Permissionless Treasury-Proxy Forced Liquidation SandwichChannels Finance Exploit — Compound-Fork Exchange-Rate Inflation via Donated UnderlyingChannels Finance Exploit — cToken Exchange-Rate Inflation via Direct LP Donation + LP-Oracle ManipulationCollective (Revolution Protocol) — malicious delegatees can permanently block delegators from redelegating or transferring their NFTsCollective (Revolution Protocol) — VerbsToken.tokenURI() JSON injection via unsanitized CultureIndex.createPiece() metadataDerive: wrapped deposit blocks a 5000 bidDominoTT Exploit — thirdweb Multicall + ERC2771 _msgSender() Spoofing Burns the Pool's TokensElephant Money (ElephantStatus) Exploit — Spot-Price Oracle Manipulation of sweep()FCN-TRUST Staking Exploit — Unverified Staking Contract Pays Unbounded FCN Rewards Drained Through a Pre-Inflated FCN/BUSDT PoolFloor Protocol Exploit — Permissionless extMulticall() Drains User-Approved NFTsGoodDollar Exploit — Unvalidated collectInterest Staking-Contract Callback → Reentrant Bonding-Curve DrainGoodDollar GoodCompoundStaking Exploit — Slippage-Free COMP Reward Swap into a Pre-Manipulated PoolHNet Exploit — ERC-2771 + Multicall _msgSender() Spoofing Burns the Pool's TokensHYPR Exploit — Uninitialized L1StandardBridge Proxy → Cross-Domain Messenger Spoof → Bridge DrainINIT Capital — liquidations can be prevented by frontrunning and liquidating 1 debtINIT Capital — MoneyMarketHook#_handleRepay can leave user tokens stuckINIT Capital — wLp tokens could be stolenKEST (KEKESANTA) Exploit — Fee-on-Transfer Reserve De-Sync + skim() Pool DrainMAMO (Matmo) Exploit — Permissionless Mint via Whitelisted BuyToken → giveawayOneNFTTrader Exploit — Reentrancy via editCounterPart() During Swap SettlementPHIL (PhilC) Exploit — Public, Unrestricted simpleToken() Mint Drains the AMM PoolPine Protocol Exploit — Shared-Vault flashLoan Invariant Bypassed by Cross-Pool repay()Revolution / Collective — art-piece quorum inflated by auctioned ERC721 voting powerStake.Link reSDL bridge — stale approval steals returned lockStake.Link rewards — incoming bridge update makes rewards insolventTelcoin Exploit — Uninitialized CloneableProxy Hijacked via Public initialize()TIME (ChronoTech) Exploit — ERC-2771 + Multicall Arbitrary _msgSender() Spoofing → Pool-Reserve BurnTransit Finance (TransitSwap V5) Exploit — Forged "Pool" in exactInputV3Swap Drains Router-Held FundsveTenet — changing the reward rate makes 500 tokens unclaimable"bot" / MEV-bot Router Exploit — Permissionless, Zero-Slippage Forced Swaps + Sandwich Drain3913 Token Exploit — skim-Driven Invite-Bonus / LP-Burn Vault Drain9419 (8633/0cCa) Exploit — Permissionless autoAddLp() / autoSwapAndAddToMarketing() Reserve ManipulationAI SPACE (AIS) Exploit — Permissionless PendingMint Inflation + Unprotected Vault DrainAlchemix — Attacker can gain infinite FLUX by repeating this attack!Alchemix — BPT can be locked for only 1 week, resulting in unfair ALCX reward distributionAlchemix — FluxToken.calculateBPT uses wrong algorithm causing nftClaim revenue to be 10,000x higher than expectedAlchemix — getActualSupply should be used instead of totalSupply for Balancer poolsAlchemix — infinite minting of FLUX through voter.poke()Alchemix — insolvency in RevenueHandler.sol because unclaimed revenue is re-countedAlchemix — loss of unclaimed bribes after burning a veALCX tokenAlchemix — malicious user can mint unlimited FLUX tokensAlchemix — newly created gauge may miss out on its rewardsAlchemix — Precision loss causes minor loss of FLUX when claiming with NFTsAlchemix — RevenueHandler.checkpoint counts unclaimed rewards as new rewardsAlchemix — RevenueHandler.checkpoint isn't correct when poolAdapter is 0Alchemix — slippage protection is inaccurate (RevenueHandler._melt)Alchemix — Stuck yield tokens upon withdrawal of votes from Bribe contractAlchemix — unauthorized minting of unlimited FLUX in 1 transactionAlchemix — voters who withdraw veALCX tokens risk losing gained bribesBrandPad (BRAND) Exploit — Permissionless buyToken() Buyback-Bot SandwichBurntbubba (LevX / FarmingLPToken) Exploit — Spot-Price Share Minting Manipulated via Attacker-Created Routing PoolsCAROL Protocol Exploit — Reentrancy in sell() via Mid-Function ETH Payout to AttackerCSX — a second stake wipes 1,000 USDC of unclaimed rewardsEEE-COIN Exploit — Flash-Loan Reserve Manipulation via a Compromised LP-Holder RouterEHX (Eterna) Exploit — Fee-on-Transfer / AMM skim DrainFiberRouter Exploit — Arbitrary External Call Drains a Victim's Token ApprovalGROK Token Exploit — Fee-on-Transfer Tax Auto-Swap Reserve DesyncKR Token Exploit — Permissionless sellKr() Liquidity-Pool DrainKyberSwap Elastic Exploit — Tick-Boundary Precision Loss Doubles Pool LiquidityLinkDao Exploit — Mis-scaled Constant-Product K Check in a Custom Uniswap-V2 ForkMahaLend Exploit — Empty-Reserve Liquidity-Index Inflation + Share-Rounding TheftMetaLend Exploit — Empty-Market Exchange-Rate Inflation via selfdestruct DonationMEV Bot 0x8c2d Exploit — Permissionless Asset-Harvester Drains a Pre-Approved VictimMEV-Bot Fleet Exploit (0xa247…) — Unprotected removeAdmin() Lets Anyone Seize and Drain 24 Bot ContractsOKC Exploit — Permissionless processLPReward() Pays Out on a Flash-Minted LP PositionOnyx Protocol Exploit — Empty-Market Exchange-Rate Inflation (Compound V2 Fork)Raft Finance Exploit — Indexable-Collateral setIndex Inflation + divUp Rounding MintSHIBAINU DAO Exploit — Underpriced ICO Sale + Lock-Bypassing batchTransferLockToken Pool DrainStakeStone StoneVault Exploit — Same-Block Deposit + instantWithdraw Skims Strategy-Realization SurplusSwamp Finance Exploit — Atomic earn() Harvest-Sandwich on StrategyBelt_TokenTheNFTV2 Exploit — Broken transferFrom Access Control Lets Anyone Re-Pull Burned NFTs and Drain Their Wrapped DAOTheStandard.io Exploit — SmartVault swap() with Zero Slippage Protection Through an Attacker-Controlled PoolTrustPad LaunchpadLockableStaking Exploit — Deposit/Withdraw Reward-Accounting DesyncWECO Staking Exploit — Reward-Debt (offsetPoints) Unit Mismatch Lets a Depositor Re-Claim the Whole Reward PoolXAI / CoinToken Exploit — Reflection-Token burn() Collapses Pool Balance via Un-touched _rTotalAstrid Protocol Exploit — withdraw() Trusts an Attacker-Supplied "Restaked Token"BelugaDex Exploit — Stableswap Coverage-Ratio Manipulation via Deposit / Cross-Asset-Swap / Withdraw LoopingBH Exploit — Spot-Reserve-Priced Liquidity Manager Drained via Flash-Loan Price ManipulationDePayRouterV1 Exploit — Output-Only Balance Check + Repeated Plugin Execution Drains Router FundsHopeLend Exploit — Liquidity-Index Inflation + aToken Rounding-Error DrainKerberus / kTAF Exploit — Compound-Fork Exchange-Rate Inflation via a Donatable, Tiny-Cash Collateral TokenLaEeb Exploit — Fee-on-Transfer + Auto-Liquify Pool Drain via skim() RecyclingLiquidator can increase a position while liquidating — AuditVault synthetic reductionLooksRare "Infiltration" — _killWoundedAgents kills a healed agentLooksRare "Infiltration" — attacker steals the grand prize by force ending the gameMaestro Router 2 Exploit — Arbitrary transferFrom via Unvalidated Router CallmaxRedeem permits leverage above the configured buffer — AuditVault synthetic reductionMicDao Exploit — Fixed-Rate Presale Swap Arbitraged Against a Self-Manipulated AMM PoolNextGen — Permanent DoS due to non-shrinking array in unbounded loopsOpen Dollar — incorrect calculations for surplus auction creationOpen Dollar — missing debt check lets users start a debt auction of non-existent debtOpenLeverage RewardVaultDelegator Exploit — Re-initializable Proxy → Admin Takeover → Arbitrary delegatecallP2P — depositEthAndRegisterValidators transfers an uncapped SSV amountParty Protocol — single host can unfairly skip the veto period for a proposalPerennial KeeperFactory — empty settle arrays still pay the keeperPerennial: maxRedeem pays 1 of a 2000000 depositPlatypus Finance (PoolSAvax) Exploit — Withdraw-While-Insolvent Coverage-Ratio ManipulationpSeudoEth (pEth) Exploit — skim()-Pumped Reflection Token Drains the AMM PoolReward claim reentrancy pays twice — AuditVault synthetic reductionStars Arena Exploit — buyShares Reentrancy Inflates the Price-Curve WeightThe winning agent's id stays 0, so the 1,000 grand prize cannot be claimedUniBot Router Exploit — Arbitrary External Call Drains Unlimited ApprovalsVesting claim updates index after an external call — AuditVault synthetic reductionWise Lending Exploit — First-Depositor Share Inflation via pseudoTotalPool DonationZS Token Exploit — Permissionless destory_pair_amount() Pool-Reserve Burn0x0 Privacy DEX (OxODex) Exploit — Forged LSAG Ring Signature + Stale _lastWithdrawal Pool DrainAPIG Token Exploit — Self-Transfer Balance-Doubling Bug Drains Two PoolsBankX / XSD Exploit — Router swapXSDForETH() Triggers an Un-Compensated Pool BurnBFCToken Exploit — lastTx Deferred Pool-Burn Desyncs PancakeSwap ReservesCEXISWAP Exploit — Unprotected initialize() + UUPS Arbitrary Upgrade DrainDAppSocial Exploit — withdrawTokensWithAlt Credits Instead of Debiting the Depositor LedgerDEXRouter Exploit — Unprotected functionCallWithValue Drains the Router's Native BNBdForce — 100 tokens freeze when the beneficiary cannot call claimdForce — one redeem fills the global daily limit and delays the next user 86400 secondsDittoETH — a long shortHintArray bills the TAPP for the gasDittoETH — Flag can be overridden by another userDittoETH — last short record refreshes updatedAt and dodges primary liquidationDittoETH — New orders can overwrite active orders when order id reaches 65000DittoETH — Owner of a bad ShortRecord can front-run flagShort calls AND liquidateSecondaryDittoETH — previous NFT owner burns the NFT the buyer just paid forDittoETH — Users can lose collateral when exiting a shortDittoETH — Users lose funds and market functionality breaks when market reaches 65k idEntangle Trillion DexWrapper accepts amountOutMin = 0 — MEV sandwichFireBird Finance Exploit — Manipulable Protocol-Fee LP Mint Drains the WMATIC/HOPE PoolFloorDAO Exploit — Self-Donated Rebase Inflates the Staking index, Over-Paying gFLOOR RedemptionsHCT (CoinToken) Exploit — Reflection-Token burn() Deflates the Pool's Reserve to 1 weiHeavens Gate (HATE) Exploit — Rebase-Index Inflation via Permissionless stake/unstake LoopingJumpFarm Exploit — Single-Transaction Rebase Inflation in OlympusDAO-style StakingLeaving 2 wei on the executor rounds a 10 fee down to 0 and the caller keeps 1,000Lumin — Collateral double-spend post liquidation is possibleLumin — Disabled lender's loan configuration can be used by a borrowerMuseumOfMahomes — last NFT of the supply can't be minted (off-by-one >=)Nouns Builder — when reservedUntilTokenId > 100, first founder loses 1% NFTOpenTrade: the early-redeem deadline subtracts the transfer-in window twiceQuantum Wealth Network (QWA) Exploit — Re-entrant rebase() Reward Harvest via stake/unstake LoopingSplit (Kub) Exploit — Self-Doubling Balance via Manipulable On-Chain "Token Price" OracleTradable — side-vault stake encodes the wrong functionTradable Side Vault — withdrawalRequestForUser has no onlyGelatoRelay, so any caller is paidUnicly PointFarm Exploit — ERC1155 Reentrancy Inflates Reward Points to Steal a LootRealms NFTVenus Prime — stale staking timestamp permits a free revocable Prime claimA removed operator still claims 1,000 rewards because removal does not touch the balanceBalancer Boosted Pools Exploit — Linear-Pool getRate() Inflation via BPT Supply Drain + Precision LossBTC20 / 24Pixels Presale Exploit — Spot-AMM Price Oracle Manipulation in buyWithEthDynamic()Canto (veRWA) — an integer underflow can permanently DoS a gauge in GaugeControllerCanto (veRWA) — removing a gauge permanently strands a voter's voting powerCanto (veRWA) — undelegating back to yourself can force a 5-year lock extensionCanto (veRWA) — unguarded checkpoint_lender/checkpoint_market let anyone grief a lender's reward to 0Capping each partyB loss at the current balance turns a 40 credit into a 1,000 withdrawalCurve UnderlyingBurner.execute() — Zero-Slippage Sandwich on the 3poolEAC Exploit — Permissionless _swapUForToken() Drains the Fund Contract into a Thin PoolEarningFarm (ENF) Exploit — Withdraw Reentrancy via ETH-Push-Before-Burn in EFVaultEHIVE Exploit — stake() Updates staked Before Computing earned, Inflating RewardsExactly Protocol Exploit — DebtManager Permit-Spoofed _msgSender Lets Anyone Act On Behalf Of Any AccountGSS Exploit — Fee-on-Transfer / Reflection Token Drained via Cross-Pool skim()LeetSwap V2 Exploit — Public _transferFeesSupportingTaxTokens() Drains the Pair's ReservesLivepeer — By delegating to a non-transcoder, a delegator can reduce someone else's vote tallyLivepeer — Underflow in updateTranscoderWithFees can cause corrupted data and loss of winning ticketsNeutra Finance Exploit — Convert.getAmountOut() Prices LP by a Spot-Manipulable ReserveSmoothly — one operator's second vote counts as 2 and pays 1000SVT Exploit — Broken AMM Pricing Round-Trip Drain (flash-loan funded)SYMMIO liquidatePartyA accepts a replayable, nonce-free Muon liquidation signatureUwerx (WERX) Exploit — Burn-on-Transfer-to-Pool + skim() Reserve CollapseVaultka — a 1-unit deposit resets the victim's unlockZunami UZD Exploit — Spot-Price totalHoldings() Inflation via SDT Donation[H-01] Buffer Finance v2.5 — payments for coupons to the Booster are irretrievableApeDAO (APE2) Exploit — Permissionless goDead() Pool-Reserve Burn + skim() Tax PumpArcadia Finance Exploit — Reentrant Self-Liquidation Drains the Lending PoolsAzukiDAO (Bean) Exploit — Signature-Replay Mint via Unenforced signatureClaimed GuardBamboo AI Exploit — updatePool() Permissionless Pool-Reserve Siphon + skim/sync DrainBao Finance Exploit — CErc20 Exchange-Rate Inflation via Direct Underlying DonationBlueberry — AURA cliff math pays the rate after the claimBNO Exploit — emergencyWithdraw() Resets Stake but Leaves Reward Accounting Intact, Draining the PoolBuffer BufferBinaryPool.send() permanently locks LP funds on an early exerciseBuffer closeAnytime never ties the user's close signature to the pricing timestampBuffer closeAnytime never validates the closing timestamp against the current timeBuffer market direction is chosen at close, guaranteeing a winning tradeCarson Token Exploit — Thin-Reserve Price Skew + Fee-on-Transfer Drain via a Custom PairCivfund (0xf485) Exploit — Forged Uniswap-V3 mint Callback Drains User ApprovalsCIVNFT / CivTrade Exploit — Missing Access Control + Attacker-Controlled Mint Callback Drains Approved AllowancesCoinbase/Base FeeVault — totalProcessed inflated without sending funds (unchecked SafeCall.send)Conic Finance (crvUSD Omnipool) Exploit — Curve Pool Imbalance Manipulation of LP ValuationConic Finance (ETH Omnipool) — Curve LP Oracle Manipulation via Spot-Reserve PricingConic Finance ETH Omnipool Exploit — Curve Read-Only Reentrancy Oracle InflationCurve crv/ETH Pool Drain — Vyper 0.3.0 Broken @nonreentrant Lock (Read-Only/Cross-Function Reentrancy)Curve Finance pETH/ETH Pool — Vyper @nonreentrant Compiler Bug Read-Only/Cross-Function ReentrancyDXdao ERC20Guild — the tally skips the zero action and pays 1000 GUILDFFIST (FIRE FIST) Exploit — Attacker-Controlled _airdrop() Overwrites the AMM Pool's Token Balance to 1 weiGYM Network Exploit — GymRouter Pulls Swap Input From the Recipient Instead of the CallerLibertify (LibertiVault) Exploit — Deposit Reentrancy via 1inch Swap Callback Inflates Share MintLUSD (LAYER3) Exploit — Spot-Price Oracle Manipulation via Loan.supply()Minto Finance Exploit — Free BTCMT Minting via Unvalidated paymentToken in ReferralCrowdsale.buyTokens()NewFi / StakedV3 Exploit — Flash-Loan Price Manipulation of an Unprotected Internal V3 SwapPalmswap Exploit — PLP Share Inflation via Permissionless buyUSDP() AUM ManipulationPerennial MarketFactory — protocol fee is locked in the factoryPerennial Vault — settling the zero address inflates global assetsPerennial: a mismatched oracle timestamp makes a 1.000000 long impossible to closePerennial: a negative Pyth exponent records 5e-5 as 5e5 and unlocks a 400,000 USDC borrowPHI MaterialObject — anyone can burn another user's objectPlatypus Finance (2nd hack) — Coverage-Ratio Arbitrage via withdrawFromOtherAssetRodeo Finance Exploit — TWAP Oracle Manipulation of the unshETH LP PriceSablier — a caller-chosen wrapped native drains tokens already in the proxySablier — a Permit2 signature that does not name the recipient is front-run for 1000 tokensSablier — an envoy of SablierV2ProxyTarget drains the proxy with a dummy permit2Sablier / PRBProxy — Owner can be temporarily changed within proxy callsSablier / PRBProxy — Plugins can be maliciously overridden by colliding signaturesSUT Token Sale Exploit — Fixed-Price Inventory Sold Far Below MarketTapioca DAO — AaveStrategy rewards locked as unredeemable stkAAVETapioca DAO — AaveStrategy setMultiSwapper bricks compoundTapioca DAO — BalancerStrategy _withdraw scales WETH as BPTTapioca DAO — FakeBigBang steals Singularity assets via unwhitelisted Magnetar repayTapioca DAO — GlpStrategy currentBalance ignores unclaimed rewardsTapioca DAO — Magnetar has no approval checking (position drain)Tapioca DAO — Market solvency multiplies share before toAmountTapioca DAO — repay allowance checked on part, pulls elasticTapioca DAO — steal oTAP contents via Magnetar exit/unlockUSDTStakingContract28 Exploit — Permissionless tokenAllowAll() Self-Approval DrainUtopia Exploit — _airdrop() Overwrites the Pool's Token Balance to 1, Collapsing the AMM ReserveVTVL: withdrawAdmin releases 200 when 600 is unreservedWGPT (Wrapped GPT) Exploit — Self-Inflicted removeLiquidity on Every Sell Drains the PoolAbracadabra / MIM ZeroXStargateLPSwapper Exploit — Arbitrary-Calldata Approval DrainARA Exploit — Permissionless "Swap-on-Behalf" Helper Drains a Pre-Approved Address via Pool Price ManipulationBabyDogeCoin Exploit — Sandwiching the Token's Slippage-Free swapAndLiquifyBeanstalk Wells — protocol invariant can be broken, bricking a valid withdrawalBeanstalk Wells — read-only reentrancy in Well.removeLiquidityBeanstalk Wells — removeLiquidity is wrong for generalized (non-linear) Well functionsBearcave — anyone can burn a HoneyJar, and ownerOf becomes 0Bearcave — L2 never learns about new sleepers, so 3 prizes stickBiswap V3Migrator Exploit — Arbitrary recipient LP Theft via Unauthorized migrate()Bunny Protocol (BUNN) Exploit — Reflection deliver() Inflates Pair Balance, Spoofing the AMM K-CheckCellframe Network Exploit — Manipulated Reserve Ratio in LpMigration.migrate()CFC Exploit — Self-Burning sync() + skim() Reserve DrainCompounder Finance Exploit — Inflatable Share Price via Curve get_virtual_price() ManipulationContract 0x7657… Exploit — Permissionless transferFrom-Drain of Standing ApprovalsDDCoin (DD) Marketplace Exploit — Self-Granted Allowance Lets the Seller Drain the Escrow TwiceDhedge L2Comptroller — user can receive too few tokens when unpaused (cross-domain replay)Midas Capital Exploit — cToken Exchange-Rate Inflation via Donation Into a Near-Empty MarketMyAi (CoinToken) Exploit — MultiSender Lets Anyone Spend a Victim's Pre-Approved Allowance Into a Hyper-Thin PoolNarwhal vault — share price flips from 1e18 to 6-decimal unitsNST Swap Exploit — Dangling approve() lets the buyer drain the swap contract's USDT reservesPawnfi ApeStaking Exploit — Unrestricted collectRate + Vault-Funded Staking Drains the P-BAYC ApeCoin ReserveSatori royalties — a 10001 purchase reverts and the NFT stays putSellToken miner Exploit — Spot-Price Reward Oracle Drained via Flash-Loaned LiquiditySHIDO Exploit — ShidoLock Migration Mint With No Eligibility CheckSHIDO Migration Exploit — claimTokens() Blind × 10⁹ Decimal Scaling Drains the Reward WalletStaticHyVM — delegatecall to an account with no code returns successSTRAC Exploit — Permissionless Token-Drainer in a Helper Contract (Spoofable transferFrom)Sturdy Finance Exploit — Balancer Read-Only Reentrancy Inflates LP-Token Collateral PriceSudoswap LSSVMRouter — specified minOutput remains locked in the routerSudoswap VeryFastRouter — malicious pair re-enters swap to drain the original caller's ETHSudoswap's linear royalty quote reverts a 2-NFT sale and leaves the NFTs in the pairSushi Furo — cancelStream pays the sender 400 shares that already leftSushi Furo — stopVesting pays the vest twiceSushi Furo vesting — stopVesting pays the owner the 1000 already claimedSwitchboard — garbage collection drops the live oracleSwitchboard — uncapped gas rebate drains the potSwitchboard: forward spends 5 ETH the caller did not payThemis Protocol Exploit — Manipulable Balancer-LP (BPT) Price Oracle Enables Over-BorrowingThreshold USD — mintList early-return lets depositors run away with collateralUN Token Exploit — Fee-on-swap-out + skim() Reserve DrainUnverified Staking Contract — claim() Double-Spend of Deposited BUSDVibe — another minter can occupy an id the sale is sellingVibe — setVibeFees is open on the implementationViral Inu (VINU) Exploit — Permissionless addLiquidityETH() Drains Pool's Own Token ReserveVortex DEPUSDT / LEVUSDC Exploit — Public approveToken() → Arbitrary Reserve DrainAjna Grants — Delegation rewards are not counted toward granting fundAjna Protocol — Position NFT can be spammed with insignificant positions by anyone until rewards DoSAjna Protocol — PositionManager's moveLiquidity freezes LP via wrong deposit timeAjna Protocol — PositionManager's moveLiquidity freezes residual LP on partial movesBabyDoge FarmZAP Exploit — Untrusted farm Callback Lets Anyone Drain Swapped TokensBitpaidio (BTP) Staking Exploit — Stale-Lock Reinvest Bug Enables Instant Flash-Loaned Staking ROICS Token Exploit — Stale Global sellAmount Drives an Attacker-Triggerable Pool BurnDEI Stablecoin Exploit — burnFrom() Grants the Caller Infinite Allowance, Draining the DEI/USDC PairERC20TokenBank / ExchangeBetweenPools Exploit — Zero-Slippage Curve Swap SandwichFAPEN (Father Pepe Inu) Exploit — unstake() Mints Free Tokens via Backwards Balance CheckGoldseed landNFT Exploit — Unprotected Minter Forwarder Lets Anyone Free-Mint 200 Land NFTsGPT Token Exploit — Deflationary transfer-Hook + skim() Pool DrainHODL Capital Exploit — Reflection-Rate Manipulation via deliver() Drains the Uniswap PairInterest Protocol — updateRegisteredErc20 prices DUST and pays out 1000 USDiJimbo Protocol Exploit — TraderJoe LB Rebalance Manipulation & Floor-Price DecouplingLevel Finance Exploit — Duplicate-Epoch claimMultiple() Reward MultiplicationLFI / VLFI Exploit — claimRewards() Reward-Debt Reset via Botched cleanUserMapping MigrationLocalTrader2 (LCT) Exploit — Unprotected Proxy Implementation Lets Anyone Set the Token Price to 1 weiLocalTraders (LCT) Exploit — Unprotected Price-Oracle Initializer Drains the LCT/WBNB PoolLW Token Exploit — Spot-Price Oracle Manipulation Drains Protocol "Buyback" Treasury into the LP, Then Drains the LPMaia DAO — Adversary can poison depositNonce via retrieveDeposit and lock user depositsMaia DAO — An attacker can steal Accumulated Awards from RootBridgeAgent by abusing retrySettlement()Maia DAO — checkParams does not check token is underlying of hTokenMaia DAO — Re-adding a deprecated gauge in a new epoch before queueRewardsForCycle() leaves gauges without rewardsMaia DAO — redeem() in beforeRedeem uses the wrong owner parameterMaia DAO — TalosBaseStrategy#init() lacks slippage protectionMaia DAO — User may underpay for remote call ExecutionGas (missing Anycall premium)Melo (MEL) Exploit — Unprotected mint() → Infinite-Supply Pool DrainMulti-Chain Capital ($MCC) Exploit — Reflection-Rate Inflation via deliver() + skim()NeverFall (NF) Exploit — sell() Over-Redeems LP Against a Pre-Crashed Pool ReserveNOON (NO) Exploit — Public _transfer() Lets Anyone Drain the AMM Pool For FreePerennial BalancedVault — a second stale deposit pushes settlement one epoch laterRadiant — exit leaves earned and unlocked set and freezes 50 RDNTSELLC / QIQI StakingRewards Exploit — Attacker-Chosen Reward-Valuation Token Drains the Reward PoolSELLC / StakingRewards Exploit — Permissionless sell() Drains Staked LP Tokens via a Self-Created Price OracleSellToken Exploit — Spot-Price Oracle Manipulation of a Leveraged "Short" ExchangeSNK Miner Exploit — Inflated Referral Reward via Just-In-Time Child StakingSushiXSwap — zero withdraw reads the wallet, not BentoBoxUSSD — StableOracleDAI averages DAI-per-ETH with ETH-per-DAI, so 1 DAI mints 799 unitsUSSD amountToSellUnits — a partial collateral sell moves 0 instead of 250e18USSD mintRebalancer — anyone can mint unbacked supplyUSSD SellUSSDBuyCollateral — the DAI skip is an OR, so 1000 DAI is soldUSSD StableOracleDAI — an extra 1e10 on an 18-decimal DAI/ETH feed0VIX Protocol Exploit — vGHST Oracle Manipulation via Balance DonationAjna ExtraordinaryFunding — caller-supplied voter accounts drain the treasuryAllbridge Core Exploit — StableSwap withdraw() Symmetric-Burn Drain via Flash-Loan-Induced ImbalanceAllbridge Exploit — StableSwap LP Mispricing via Self-Imbalanced PoolsAxioma (AXT) Exploit — Mispriced Presale Sells Tokens Far Below the AMM Market PriceEigenLayer — impossible to slash queued withdrawals containing a malicious strategy (misplaced ++i)Frankencoin — CHALLENGER_REWARD can be used to drain reserves and free-mint ZCHFFrankencoin — Position owners can deny liquidations (unbounded price overflow)Frankencoin — Successful challenge + collateral top-up skips cooldownFrankencoin — Transfer position ownership to address(0) DoSes end()Hundred Finance #2 Exploit — Empty-Market Exchange-Rate Inflation Drains Every PoolIOTA Heroes — cancelTradeOer pays the same order until the post is emptyIOTA Heroes — contractAdventure mints the reward twiceIOTA Heroes — setTradeOer refunds before the order is closedLUKSO LSP6 KeyManager — a permitted reentry clears the reentrancy guardMetaPoint (POT) Exploit — Permissionless approve() on User-Wallet Contracts Drains Holder BalancesOceanLife (OLIFE) Exploit — Reflection-Rate Collapse Inflates the Pool's Token BalanceParibus Finance Exploit — Compound V2 Fork redeemFresh Cross-Market ReentrancyRubicon — DOS of market operations with malicious offersRubicon — First depositor bug on unmodified Compound forkRubicon — Last borrowed asset is not collateralizedRubicon — Migration can underpay users via price manipulationRubicon — Opening a position reuses prior collateral for borrowingRubicon — Precision loss makes openPosition leverage higher than expectedRubicon — RubiconMarket checks slippage incorrectlyRubicon — Some offers can't be cancelledSentiment Protocol Exploit — Balancer Read-Only Reentrancy Inflates LP-Collateral PriceSilo Finance Logic-Error Exploit — Interest-Rate Manipulation Drains the Entire XAI Market for ~$0Sushi RouteProcessor2 Exploit — Attacker-Controlled "Pool" Drains Approved Tokens via uniswapV3SwapCallbackSwapos V2 Pair Exploit — Broken k-Value Invariant Lets 10 wei of WETH Drain ~98% of the Pool's SWPTerm Finance — 500 excess collateral stays locked after the loan is repaidTerm Finance — a complete liquidation divides by zero and 1000 collateral staysTerm Finance — a rollover bid at uint256 max sticks 1000 purchase tokensTerm Finance: a reopened auction never receives AUCTION_LOCKER, so 4,000 collateral stays lockedTerm Finance: a zero signature authenticates as address(0) and withdraws 1,000 tokensVTVL — onlyDeposited locks the remaining milestone allocationYearn / iEarn yToken Exploit — APR-Oracle Routing + bZx Donation Inflates Price-Per-Share for ~$11.5MBearCave — mekHoneyJarWithETH reverts on every paid mintBearcave HoneyJarPortal — anyone can pull jars the portal is approved forBearcave: bundle 0 mints the entire HoneyJar supply before any game existsBIGFI Exploit — Reflection-Token burn() That Shrinks Supply Without Shrinking Reflection SpaceCage locks 1,000 joined tokens with no way to exitDBW Finance Exploit — Dividend Reward Double-Claimed via 18 Proxy Clones Each Holding ~100% of the LPDKP Exchange Exploit — Flash-Loan-Manipulated AMM Price Oracle Lets 100 USDT Buy the Whole DKP ReserveEuler Finance $197M Exploit — donateToReserves Enables Self-Liquidation That Drains the Protocol's ReservesGlobal Interlink — release pays the caller, not the whitelisted userMute.Io — Bond max-buyer might end up buying the max buy of the next epochMute.Io — dMute: attacker can push lock items to victim's arrayParaSpace Exploit — ApeCoin-Staking (cAPE) Collateral Mis-Accounting + Same-Tx Supply→BorrowParaSpace Exploit (variant 2) — ApeCoin Staking Supply/Borrow ReentrancyPhoenix (PHX) Exploit — Missing Access Control on delegateCallSwap(bytes)Polynomial — Exchange._liquidate burns too much powerPerpPolynomial — Hedging during liquidation over-hedges the LiquidityPoolPolynomial Protocol — division-by-zero in getTokenPrice bricks KangarooVault with funds lockedPolynomial Protocol — KangarooVault.removeCollateral updates storage without removing collateralPolynomial Protocol — missing totalFunds update in LiquidityPool.openShort shortchanges LP holdersPolynomial Protocol — short positions can be burned while still holding collateralPolynomial Protocol — uneven performance-fee deduction shortchanges late KangarooVault holdersPoolz LockedDeal Exploit — Integer Overflow in getArraySum Crediting Free Vesting PoolsSafeMoon Exploit — Unprotected burn(from, amount) Drains the AMM Pair ReserveSound.xyz SAM — the golden egg id keeps moving after the saleThena RewardPool Exploit — Reentrant unstake(…, claim=true) Double-Payout of Converted RewardsVertex — updateStates accepts any dtY2K Carousel — a reverting receiver freezes the deposit queueY2K Carousel — a second rollover enlist points the index at the wrong queue slotY2K Carousel: rolling a winning epoch burns the winningsBonqDAO / AllianceBlock Exploit — TellorFlex Oracle Price Manipulation (Cheap-Stake submitValue)CowSwap SwapGuard Exploit — Unvalidated Interaction Target in envelope() (arbitrary transferFrom under maxint allowedLoss)Dexible Exploit — Caller-Controlled router/routerData in selfSwap/filldForce Exploit — Read-only Reentrancy via Curve remove_liquidity into the dForce Price OracleDYNA (Dynamic) Exploit — Reward-Inflation in StakingDYNA.deposit/redeem + Time-Bypassable Sell CapEFVault / ENF Exploit — redeem() Share-Price Decimal Bug Drains USDCFDP (FireDrake) Exploit — Reflective-Token deliver() Inflates the AMM Pair's BalanceGMX Synthetics — a faked revert length runs the keeper out of gasGMX Synthetics — a long callback revert reverts the keeper batchGMX Synthetics — a price gap makes a stop revert, so the long stays openGMX Synthetics — ADL closes a long below its minimum payoutGMX Synthetics — claimable collateral cannot be claimedGMX Synthetics — claimCollateral reverts because the claimed-amount check is invertedGMX Synthetics — decrease orders ignore the user's slippage floorGMX Synthetics: fee receiver is paid twice the borrowing-fee sliceGMX Synthetics: pool value adds the borrowing-fee receiver's sliceHatsSignerGate lets a claim exceed maxSigners and brick the safeLaunchZone (LZ) Exploit — Unverified swapXImp Logic Flaw (Permissionless Victim-Side Swap)Mass — low-level call to an empty account falsely succeedsOrion Protocol Exploit — Reentrancy via Malicious Deposit Token in swapThroughOrionPool / depositAssetPlatypus Finance Exploit — Flawed LP-Collateral Pricing in PlatypusTreasure (_getLPUnitPrice)Revert Finance (V3Utils) Exploit — Unvalidated swapData Lets Anyone Route User-Allowance Tokens to an AttackerSheep Exploit — Reflective-Token _burn Distorts balanceOf, Drains SHEEP/WBNB Pair via DODO FlashSigners lower the safe threshold inside one transactionSperax USDs Exploit — isContract()-Based Rebase Accounting Flip on a Pre-Credited EOAStarlink (Starlink Coin) Exploit — Reflective Token Fee vs. Pancake skim/sync Reserve DrainSwapX Exploit — Unverified swapX Router Drains Pre-Approved Victim BUSD via Caller-Controlled RecipientUnprotected CALLCODE lets anyone destroy the Nested Finance HyVM masterA second push blocks Derby rebalance step 5BEVO Exploit — Reflective-Token deliver() Pool-Balance Inflation Drain (PancakeSwap Flash)BRA Token Exploit — _transfer Buy/Sell Tax Credited to the Pair Itself, Drained via skim()Derby Vault — withdrawFromProtocol scales a USDC pull by cUSDC decimalsFantium — mint can clear another user's allow-list permitFantium — mint delivers the NFT to the caller, not _toFantium: shadowed _owners locks the real owner of token 1000000GDS Coin Exploit — Spot-Price pureUsdtToToken Reward Inflation via Nested Flash Loans (BSC)Midas Capital Exploit — Reentrancy-inflated Curve-LP Oracle for stMATIC Collateral (Compound v2 fork, Polygon)Mugen ArbitrumSwaps — anyone unwraps the parked native refundOmniEstate Exploit — Staking Reward Calculated From a Stale Storage Variable (Zero-Duration Over-Claim)QTN (QUATERNION) Exploit — Reflection-Supply Rebase Inflation via skim() LoopROE Finance Exploit — Manipulatable LP-Token Oracle + Re-deposit Collateral InflationSHOCO Exploit — Reflection deliver() Deflation Inflates the AMM Pair's Effective BalanceThoreum Finance Exploit — Dividend/Rebase Token Self-Transfer Balance InflationTimeswap V2 — collect() always transfers zero fees then burns the fee positionTimeswap V2 — LiquidityToken uses totalSupply()+1 as tokenId (collision after burn)TomInu (TINU) Exploit — Reflective-Token (RFI) Reflection-Rate Skim against a Uniswap-V2 PairUFO/UFDao (UFT) Exploit — Treasury-Share Mispricing on a Tiny-Supply LP TokenUpswing (UPS) Exploit — sellPressure Farming + releasePressure() LP-Burn That Breaks kVertex — ammEquilibrium divides the quote by 1e18AES (AEST) Exploit — Fee-Accumulator distributeFee() Drains the AMM PairAPC (ArenaPlay) Exploit — Spot-AMM-Price Swap Drained via Flash-Loan Pump & DumpBBOX Token Exploit — Fee-Engine Burns Tokens Out of the LP Pair and sync()sBGLD (BlackGold) Exploit — Migration-Contract Inflation + AMM Reserve ManipulationDefrost Finance lendingSwitchErc20 Exploit — Reentrant Flash-Loan Share InflationDFS Exploit — _transfer Accounting Gap Let skim() Self-Loop Mint DFS Out of Thin AirElasticSwap Exploit — Internal-Reserve Manipulation Drains the TIC/USDC.e AMMFPR Token Exploit — Public setAdmin() Hijack Drains FPR Distributor Contracts + LPJAY Token Exploit — Reentrancy via Attacker-Controlled "ERC721" Callback in buyJayLodestar Finance Exploit — plvGLP Oracle Inflation Drains the Lending PoolsMEV Bot 0x28d9 Exploit — Flash-Loan Callback Hijack via Attacker-Controlled assetToMUBank Exploit — Flash-Swap Manipulation of Reserve-Dependent Bond PricingNimbus Platform Exploit — Flash-Loan AMM Spot-Price Manipulation of Staking RewardsNova Exchange Exploit — Owner-Only Unlimited Mint via rewardHolders()Overnight Finance USD+ Exploit — NAV Inflation via Synapse Stable-Pool ManipulationPods mulDivUp mints 1 share for 1 wei and it withdraws 9900990099009900990 assetsRFB (Roast Football) Exploit — Brute-Forceable On-Chain "Lucky Buyer" Jackpot DrainRubic Exchange Exploit — Arbitrary External Call Drains User AllowancesTiFi Finance Exploit — Spot-Price Oracle Manipulation of a Lending PoolAbracadabra / Kashi Cauldron Exploit — Self-Liquidation Against a Stale Exchange RateAnnex Finance Liquidator Exploit — Unauthenticated Flash-Swap Callback Drains the ContractAurum Finance (AUR) Exploit — Unprotected changeRewardPerNode() Drains the Node-Reward PoolBDEX (Bvaults) Exploit — Permissionless convertDustToEarned() Sandwiched into a No-Slippage Pool SwapBeefy "Moo CAKE CTX" Vault Exploit — Harvest-Sandwich Reward TheftBrahma Finance (BrahTOPG) Zapper Exploit — Arbitrary call Drains User ApprovalsDeGate — arbitrary token integration can lock depositsDFX Finance Exploit — Reentrancy via Unguarded flash() Inflates LP Share MintMBC / ZZSH Exploit — Public swapAndLiquifyStepv1() Lets an Attacker Inject the Token's Own Accumulated Fees Into the Pool ReserveMEV Bot 0x0AD8…afd4 — Arbitrary-Call Router Drains a Victim's Standing USDC ApprovalMultichain (Anyswap) anySwapOutUnderlyingWithPermit — Missing-permit Allowance TheftParaSpace — [H-01] Data corruption in NFTFloorOracle; Denial of ServiceParaSpace — [H-03] Interest rates are incorrect on LiquidationParaSpace — [H-04] Anyone can prevent themselves from being liquidatedParaSpace — [H-05] Attacker can manipulate low-TVL Uniswap V3 pool to borrowParaSpace — [H-08] NFTFloorOracle asset and feeder structures can be corruptedParaSpace — [H-09] UniswapV3 tokens of certain pairs will be wrongly valuedParaSpace — [H-10] Attacker can drain pool using executeBuyWithCreditParaSpace — flash-loan bypass of the auction recovery health checkPolynomial Protocol Exploit — Arbitrary swapTarget.call Drains Pre-Approved User FundsPower reward pays 100 CORE and skips 50 undelegated coinssDAO Exploit — Staking-Reward Accounting Manipulation via Self-Inflated totalStakeReward + Shrunken Reward DivisorSEAMAN Exploit — Forced Tax-Swap Routed Through a Thin GVC Pool (Price Manipulation)SheepFarm Exploit — Free Gems via Repeatable register()SheepFarm Exploit — Free-Gem Mint via Repeatable register()Stakehouse LiquidStakingManager — withdrawETHForKnot pays 4 ETH before the knot is bannedStakehouse Protocol — bringUnusedETHBackIntoGiantPool can cause stuck ether funds in the Giant PoolStakehouse Protocol — bringUnusedETHBackIntoGiantPool loses idleETH addition and lets attackers steal ETH from the Giant PoolStakehouse Protocol — GiantLP with a transferHookProcessor can't be burned, users' funds stuck in the Giant PoolStakehouse Protocol — incorrect accounting in SyndicateRewardsProcessor lets any LP holder steal others' ETH from the fees and MEV vaultStakehouse Protocol — repeated reward claims drift, letting a curator extract more than their fair shareStakehouse Protocol — transferring GiantMevAndFeesPool tokens leaves claimed[] high, DoS-ing the sender and orphaning future rewardsStakehouse Protocol — withdrawETH from GiantMevAndFeesPool can steal most of the ETH because idleETH is reduced before burning the LP tokenStakehouse Syndicate.unstake leaves the reward claim-debt snapshotted at the pre-unstake balanceUEarnPool Exploit — Self-Referral claimTeamReward() Inflation DrainYield Ninja withdraw accounting — AuditVault 19123Zerem unlockExponent handling — AuditVault 203080x0000…a47b1 MEV Bot Exploit — Unauthenticated receiveFlashLoan Drains Idle WETHATK ("Journey of Awakening") Exploit — Spot-Price getPrice() Manipulation via Flash-Loaned Reserve DrainBabySwap SwapMining Exploit — Router-Reported Swap Volume Forged via a Fake FactoryBEGO (BGeoToken) Exploit — Signature-Gated mint() Bypassed With Empty Signature ArraysBlur — StandardPolicyERC1155 hardcodes matched amount to 1Carrot Token Exploit — Arbitrary transReward() Hijacks the Reward Pool to Bypass transferFrom AllowanceEFLeverVault Exploit — Direct flashLoan(0x2) Inflate-Balance DrainHEALTH Token Exploit — Permissionless Per-Transfer Pool-Reserve BurnHPAY (Hedge Pay) Exploit — Unprotected setToken() Lets Anyone Restake Junk and Withdraw Real HPAYINUKO / SIG Bond Exploit — Flash-Loan LP Mispricing via balanceOf-based ValuationMarket.xyz / Hundred-clone Exploit — Curve LP Read-Only Reentrancy Inflates Collateral PriceMeson credits a codeless transferFrom and then pays out 1000 real USDCMeson release to a contract reverts on USDT and leaves 1,000 USDT stuckMeson untyped signatures — one digest authorizes two swap layoutsMulticall multicallWithoutCheck() — Unauthenticated Arbitrary-Call Drainn00d (SushiBar fork) Exploit — ERC777 Reentrancy via Stale totalSushi Share InflationOlympusDAO BondFixedExpiryTeller Exploit — Unverified Bond-Token in redeem() Drains the TellerOnemind FeePayer: ignored call success sticks the mint feeOnemind PlatformAuction: unpaid royalty is still subtracted from pricePLTD Exploit — _bron Sell-Accumulator Burns From the Pool, Breaking x·y = kRabby Wallet SwapRouter Exploit — Arbitrary External Call Drains Pre-Approved User FundsRES Token Exploit — Permissionless thisAToB() Pool-Reserve Burn Breaks x·y = kRES Token Exploit — Self-Burn-From-Pool + sync() Breaks the AMM InvariantRL (RealLand) Exploit — LP-Incentive Airdrop Drained via Reusable LP PositionTeam Finance Exploit — migrate() Burns Other People's Locked LP via an Unvalidated pair ParameterTempleDAO StaxLPStaking Exploit — Access-Control-Free migrateStake() Pool DrainTransit Finance Exploit — Arbitrary transferFrom via Unvalidated Swap OwnerUERII Token Exploit — Public, Unauthenticated mint() Inflates Supply and Drains the Liquidity PoolULME Token Exploit — Permissionless buyMiner() Spends Anyone's Pre-Approved USDTULME Token Exploit — Permissionless buyMiner() Spends Victims' USDT AllowancesVTF (Victor the Fortune) Exploit — Compounding Time-Based Mint via Self-Service updateUserBalance()Xave Finance Exploit — SafeSnap / Reality DaoModule Permissionless Governance TakeoverBad Guys by RPF Exploit — Unbounded chosenAmount in WhiteListMint() (Per-Wallet Mint Limit Bypass)BADCODE MEV Bot Exploit — Unauthenticated dYdX callFunction Callback Drained to a Max ApprovalBNB48 MEV Bot Exploit — Unprotected pancakeCall Callback Drains the Bot's InventoryBXH Exploit — Spot-Price Bonus Payout Manipulated via Flash-LoanDPC (DARK_POOL) Exploit — claimStakeLp Self-Compounds the LP Reward Quota (Geometric Doubling)DXdao guild — one wei of lock spends the treasuryDXdao guild — zero totalLocked lets a stranger pass a paying proposalFunding is paid in vBase instead of UANewFreeDAO (NFD) Exploit — Stateless, Self-Resetting Reward Lets a Borrowed Balance Be Compounded 50×NXUSD / Nereus Protocol Exploit — LP-Token Oracle Manipulation Drains a Cauldron Lending MarketRADT (RADT-DAO / "Dream plan" TWN) Exploit — Permissionless Reward withdraw() Drains the LP Pair's Token ReserveROI Token Exploit — Missing onlyOwner on transferOwnership → Reflection-Accounting MintShadowFi (SDF) Exploit — Permissionless burn() Drains the AMM Pair ReserveThunder Brawl (THB) Exploit — claimReward() Reentrancy via ERC-721 Mint CallbacktransferPerpOwner can be front-run, then the new perp pulls the reservesUmami MarinateV2: delisted marinator rewards are never collectedYYDS Exploit — Spot-Price Oracle Manipulation via Flash-Swap Reserve DrainingZoompro Finance (ZOOM) Exploit — Manipulable FakeUSDT Reserve Skews the Zoom→USD PriceANCH Token Exploit — Reflection Reward Minted on Pair-to-Self skim() TransfersCircle / MakerDAO PSM Exploit — Free Vault Closure via a Pre-Authorized CDPDDC (BananaSwapToken) Exploit — Permissionless handleDeductFee() Pool-Reserve DrainEGD Finance Exploit — Flash-Loan Spot-Price Oracle Manipulation Inflates Staking RewardsETN / EtnProduct Exploit — Protocol-Funded Liquidity Sent to the Caller (addLiquidity → msg.sender)FPIControllerPool casts a full-width FRAX amount to -1000e18 and mints 10,001,000 FPIFraxlend leveragedPosition leaves the exchange rate stale, so the next mint withdraws 1500 FRAXLuckyTiger NFT Exploit — Predictable On-Chain "Randomness" in a Pay-to-Win MintMagic Yearn MyStaking: a non-staker can zero stakerCountMagic Yearn MyStaking: claim fees an already-net unclaimed balanceMagic Yearn MyStaking: setTimer runs before the fee divisorMagic Yearn MyStaking: stake stores claimable rewards twiceMakerDAO UNIV2DAIUSDC CDP Exploit — Free Collateral Withdrawal via a Mis-priced LP-Token Vault (frob)Nomad Bridge Exploit — Fraudulent Zero-Root Makes Every Forged Message "Proven"QIXI Token Exploit — Flash-Swap Repaid With a Free-to-Mint / Fee-Skimming TokenReaper Farm Exploit — ERC-4626 redeem() / withdraw() Missing Allowance CheckReserve — initiateAuction reverts, so 10100 collateral stays unsoldReserve — one-step ownership transfer lets the new address sweep 1000TrustSwap LockToken: withdrawTokens transfers before clearing nftMintedXSTABLE.PROTOCOL (XST) Exploit — skim()-driven elastic-supply mint that re-inflates the pool's own token reserveXSTABLE.PROTOCOL (XST) Exploit — skim()-Driven Rebase Mint Inflates Pool ReservesAudius Governance Takeover — Re-callable initialize() on Live Proxies via Storage-Slot CollisionBLS Wallet — one signature pays twice because the nonce moves too lateFlippazOne Exploit — Missing onlyOwner on the Fund-Withdrawal FunctionsLPC Token Exploit — Self-Transfer Balance Overwrite Mints Free TokensOmni Protocol Exploit — NFT-Lending Re-Entrancy via withdrawERC721 / liquidationERC721Origin extend discards 50 OGV of rewardsQuixotic (Optimism NFT Marketplace) Exploit — Unsigned buyer Parameter Drains Any Approved ERC-20 AllowanceSpaceGodzilla Exploit — Permissionless swapTokensForOther / swapAndLiquifyStepv1 Pool-Accounting DrainConnext — routers pay signed amount on execute, credited only bridgedAmt on reconcileDiscover / ETHpledge Exploit — Self-Referral Bonus Inflation via Spot-Price-Sourced Reward MathGym Network SinglePool Exploit — depositFromOtherContract() Mints Stake Without PayingHarmony Horizon Bridge Exploit — Compromised 2-of-5 Multisig Drains the Ethereum-Side ManagerInverse Finance Exploit — Spot-Balance Oracle Manipulation of the yvCurve-3Crypto Price FeedOptimism (Wintermute) Exploit — Uninitialized Gnosis Safe Proxy Front-RunPutty — acceptCounterOffer may result in both orders being filledSnood (Schnoodle) Exploit — transferFrom Allowance Bypass Drains the SNOOD/WETH Uniswap PairSqwid raffle drops the fractional REEF and leaves it in the contractXCarnival Exploit — Untrusted xToken Argument in pledgeAndBorrow Lets Orders Borrow Against Already-Withdrawn CollateralBAYC / ApeCoin Airdrop Exploit — ERC-3156 Flash-Loan of Vaulted BAYC to Steal the APE ClaimClaim unstakes 10 LP when the fair yield is 5 LPFactoryDAO — Blacklisted user may permanently block withdrawExcessRewardsFortress Loans Exploit — Governance Capture + Poisoned Umbrella Oracle → Over-borrowHackDao Exploit — Fee-on-Transfer Token Listed in a Vanilla Pancake Pair (skim/sync reserve desync)NOVO Exploit — transferFrom Skips Allowance Check, Pool Reserve DrainedAku-Auction (Akutar NFT) Exploit — Push-Payment Refund DoS & Permanently Locked FundsBeanstalk Farms Exploit — Flash-Loan Governance Self-PassCFToken Exploit — Exposed public _transfer Lets Anyone Drain the Pair's TokensDEUS Finance DEI Exploit — Privileged Swapin Mint + DEI Collateral/LP MispricingElephant Money Exploit — Infinite Mint via the Unverified Trunk Router (mint/redeem Accounting Flaw + Elephant Buy-Back Feedback)Gym Network LiquidityMigrationV2 Exploit — Migration Contract Spends Its Own GYMNET to Mint LP for the CallerPoolTogether: a 1-wei deposit plus an aToken donation gives the next depositor 0 sharesRari Capital / Fei Protocol Fuse Exploit — Mis-Configured Collateral Oracle (USDC Priced Off the ETH/USD Chainlink Feed)Rikkei Finance Exploit — Permissionless setOracleData() Oracle Hijack on a Compound-style Money MarketSaddle Finance sUSD MetaPool Exploit — Virtual-Price Manipulation Round-TripWDOGE (Wrapped Doge on BSC) Exploit — Reserves-Out-of-Sync Drain via Repeated skim/syncZeed Finance Exploit — Reward-Fee Tri-Crediting Inflates YEED Pair Balances, Skim-Loop Drains USDTAgave Finance Exploit — Reentrancy in liquidationCall (Aave-v2 fork)API3 dAPI median can be moved by one compromised reportAPI3 PSP: a shifted parameter byte blocks publish and sticks the feeAuctus (ACO) Exploit — ACOWriter Trusts Attacker-Supplied acoToken + Arbitrary exchange CallBacon Protocol Exploit — Reentrancy via ERC-1820 tokensReceived in lend/redeemCompound cTUSD sweepToken Exploit — Comptroller Swap to Compliant TrueUSDFantasm Finance Exploit — Decimal Miscalculation in mint Over-issues xFTMHundred Finance Exploit — ERC-667 Reentrancy in borrow/redeem (Compound fork)LiFi Exploit — Unvalidated callTo/approveTo in the Pre-Bridge Swap FacetOneRing Finance Exploit — Missing Reentrancy Guard + Under-priced depositSafeParaluni MasterChef Exploit — Reentrancy in depositByAddLiquidity via Malicious TokenRedacted Cartel (wxBTRFLY) Exploit — Faulty transferFrom Allowance LogicRevest Finance Exploit — Reentrancy in FNFT mintAddressLock/withdrawRonin Bridge Exploit — Sky Mavis Validator Key Compromise (Forged Withdrawals)TreasureDAO Marketplace Exploit — Zero-Quantity Buy Drains Listed NFTs for Free (_pricePerItem * _quantity with _quantity = 0)Umbrella Network RewardPool Exploit — Integer Underflow in withdrawArkouda pays NFT rewards in whole days, not secondsBuild Finance (BUILD) Exploit — Governance Takeover via Low Quorum → Arbitrary-Proposal DrainCWBC — Arkouda rewards use days held and ignore stakeCBWCCWBC — Arkouda.BASE_REWARD is 10 ARK instead of 3 ARK per dayCWBC — Arkouda.claimReward mints before rewardGenerationStartTime is setFoundation — Creators can steal sale revenue from owners' salesLinkpool staking — withdraw pays 100e18 when the fair amount is 110e18Meter.io Exploit — AnyswapV3ERC20 transferWithPermit Guard Logic FlawTecraSpace (TCR) Exploit — Swapped Allowance Keys in burnFromThe Sandbox LAND Exploit — Public _burn of Anyone's NFTAnyswap (Multichain V4 Router) Exploit — Underlying-Transfer Cross-Chain DrainBasis MultiDistributor — unprotected minimum-distribution list growthBehodler — Double transfer in ERC677 transferAndCallBehodler / LimboDAO — assertGovernanceApproved has no access control (anyone can lock a user's funds)Lido — an uncapped share burn can be taken by a fresh depositNotional — malicious treasury manager can burn treasury tokens via makerFeeNotional TreasuryAction — COMP harvest keeps only the balance deltaOrigin — arbitrary ERC20 can block offer finalizationOrigin — listing deposit can be withdrawn repeatedlyOriginToken migration leaves V00 Marketplace escrow on the paused tokenQubit Finance QBridge Exploit — Zero-Address Token Whitelist BypassGearbox V1 — a failed whitelist transfer is still added to totalValueGrim Finance Exploit — Reentrant depositFor() Share Inflation in the GrimBoost VaultKuiper — stale fee checkpoint after totalSupply reaches zeroNerve Bridge (Saddle/MetaSwap) Exploit — Stale baseVirtualPrice Cache Lets a Round-Trip Mint Free fUSDRainmaker — transferring TimeLockPool shares sticks both the deposit and the sharesStargate — LPStaking.emergencyWithdraw pays user.amount before clearing itUMA prepaid proposer reward of 100 stays trapped in the pairVisor Finance (vVISR) Exploit — Free Share Minting via Attacker-Controlled delegatedTransferERC20FairSide — anyone can inflate FSDVesting and claim the balanceFairSide FSDVesting — a fully vested beneficiary never receives the conviction NFTMonoX Finance Exploit — Self-Swap Price Inflation (swapExactTokenForToken(MONO, MONO))Ploutoz / Dollar Online (DOP) Exploit — Spot-Price Oracle Manipulation Against a bZx/Fulcrum-Fork Lending PoolStreaming — arbitraryCall lets compromised gov drain user allowancesStreaming — recoverTokens broken after creatorClaimSoldTokens (isSale)Streaming — recoverTokens steals rewards when depositToken == rewardTokenVader Protocol — TWAP decimal-count price collapse causes USDV over-mintingVaderPoolV2 mintFungible steals a victim's deposit to an attacker (arbitrary from)VaderPoolV2 mintSynth mints a victim's deposit to an attacker (arbitrary from)VaderPoolV2 synth redemption priced off manipulable spot reserves drains the poolCovalent staking — non-upgradeable Ownable leaves 1000 CQT stuckCream Finance (Oct 2021) Exploit — yUSD pricePerShare Donation-Inflation → Over-Collateralized BorrowIndexed Finance Exploit — reindexPool + updateMinimumBalance Index-Token Mint/Redeem ManipulationBadger veCVX — manualRebalance locks the liquid balanceDAO Maker Exploit — Unprotected init() Re-initialization → emergencyExit Vesting DrainLiquity — zero-ICR reinsertion strands a troveMISO / SushiSwap Dutch Auction — batch() delegatecall Reuses msg.valueNimbus Pair Exploit — Broken K-Invariant Check (10000 vs 1000 Scaling Bug)NowSwap / Nimbus Exploit — Broken k-Invariant via a 10000 vs 1000 Scaling MismatchZABU Finance Exploit — MasterChef Reward Inflation via Fee-on-Transfer lpSupply CollapseCream Finance / AMP Exploit — Cross-Market Reentrancy via ERC777 tokensReceivedPoly Network Exploit — Function-Selector Collision Hijacks the Cross-Chain Keeper Public KeyPopsicle Finance (Sorbetto Fragola) Exploit — LP-Token Transfer Skips Reward-Debt SyncWault Finance Exploit — WUSDMaster redeem() Pro-Rata WEX Drain via Self-Manipulated WEX PriceXSURGE (Surge) Exploit — Reentrancy on a Liquidity-less Bonding-Curve TokenChainSwap Exploit — Self-Signed receive() Cross-Chain Mint (Forgeable Validator Set)ChainSwap Exploit (BSC) — Self-Signed receive() Cross-Chain Mint (Forgeable Validator Set)Connext fulfill — a failed helper keeps a 1000 approval and spends the next depositLevyathan Finance Exploit — Leaked Deployer Key → Timelock-Gated Ownership Hijack → Unlimited mint()88mph NFT Exploit — Unprotected init() Lets Anyone Seize Ownership of a Live NFT CloneBase/reward token alias inflates burnForBase — reward-accounting theftEleven Finance Exploit — emergencyBurn() Pays Out Underlying Without Burning Vault SharesNon-existent module delegatecall appears successful — unchecked targetPancakeHunny Exploit — mintFor() Reward Inflation via balanceOf(this) DonationPayable delegatecall loop reuses msg.value — value-accounting hazardSafeDollar (SDO) Exploit — MasterChef Reward Inflation via Drained lpSupply DivisorUnbatched startPool can be front-run — initial mint theftxWin Finance Exploit — Disabled Slippage Control + _tradeParams.amount-Based Reward InflationYield V2 Witch buy/payAll accepted vaults that were not under auctionbEarn / bVaults BUSD-Alpaca Strategy Exploit — emergencyWithdraw Re-prices Shares Against a Self-Inflating wantLockedTotalBurgerSwap (Demax) Exploit — Re-entrant Multi-Hop Swap Drains the WBNB Side of the Pool TwiceFairSide — missing abs in arctan overpays 89200000000000000 FSDJulSwap (JulProtocolV2) Exploit — Spot-Price Manipulation of addBNB() Liquidity ProvisioningPancakeBunny Exploit — Flash-Loan LP Price-Oracle Manipulation Mints Unlimited BUNNYRari Capital ETH Pool Exploit — ibETH.totalETH() Accounting Reentrancy via Bank.work()Spartan Protocol Exploit — LP-Share Inflation via Spot-Balance Accounting + Unsynced DonationValue DeFi vSafe WBNB Vault — Inflated-Share Mint via Manipulated Alpaca ibBNB Strategy PriceNuCypher — deposit and withdrawAll sniff the same staked rewardUranium Finance Exploit — Broken Constant-Product K Check (100× Slack in swap())DODO DVM Flashloan Exploit — Unprotected init() Reinterprets Pool ReservesPAID Network Exploit — Compromised Upgrade/Owner Key → Unlimited mint()Pool accepts input when output token has no code — silent transfer failureYearn yDAI v1 Exploit — Curve-Backed Vault Share-Price ManipulationCover peripheral — a flash loan moves a pool and the router pays the spot priceCover Protocol — unlimited approve lets an attacker take 1000 DAI off the routerOUSD can transfer more than the displayed balance — rounding/precision lossOUSD total supply can fall below user balances — broken rebasing invariantReentrant mintMultiple callback — untrusted external callSushiMaker — Bridgeless convert() Lets an Attacker Insert a Fake Pair and Steal Onsen Fee Liquidity (Badger DIGG)Timelock.admin takeover through a regular proposal — governance privilege escalationUnbounded external loops can permanently DoS administration — gas-limit denial of serviceCover Protocol Exploit — Stale Pool Snapshot in Blacksmith.deposit() Mints ~40 Quintillion COVERPickle Finance Exploit — Arbitrary delegatecall Through an Approved Jar Converter Drains the DAI pToken StrategyHarvest Finance Exploit — Vault Share-Price Manipulation via Curve y-Pool ImbalancebZx (iETH) Exploit — Self-Transfer Balance Duplication in _internalTransferFromAudius claimRewards pays the delegator 550 instead of 50Audius unresponsive provider locks 1000 of delegator stakeOpyn ETH Put Exploit — Reused msg.value Across a Multi-Vault exercise() LoopBalancer × Statera (STA) Exploit — Deflationary-Token Reserve Desync via gulp()Bancor Network Exploit — Public safeTransferFrom Drains Any Approved UserLendf.Me Exploit — ERC777 Re-Entrancy on a Checks-Effects-Interactions Violation in supply()/withdraw()Uniswap V1 × imBTC (ERC777) — Reentrancy Reserve-Pricing Drain1,000 REP is credited to outcome A when the user paid for BA malicious market skips a 1,000 CASH affiliate paymentA stranger registers a backdoored wallet and spends 1,000 of the victim's CASHMarket creator skips the trader's 200 CASH source cut1,000 SKL stays unclaimable after 600 is delegated for 90 days48 delegations make getLockedCount exceed 40,000 gas and 1,000 tokens stay putEnding a 1,000 SKL delegation unlocks it while 5,000 is still lockedSKALE LockableERC777 — a burn callback delegates tokens and then burns themSKALE TokenState — rejecting a mixed delegation re-locks unlocked tokensChainlink Oracle — a crafted request makes fulfill transfer the oracle's LINKBuyer top-up locks 1,000 CASH past the seller timeoutSpankChain Exploit — Classic Reentrancy in LedgerChannel.LCOpenTimeout()BEC (BeautyChain) Exploit — batchTransfer() Integer-Overflow Infinite Mint (batchOverflow)SmartMesh (SMT) Exploit — transferProxy Integer-Overflow Mint (proxyOverflow / CVE-2018-10376)Parity WalletLibrary kill — Uninitialized Shared Library Self-Destruct (the "devops199" freeze)Parity Multisig First Hack (July 2017) — Unprotected initWallet Re-initialization[H-02] Attacker can front-run a MuteBond buyer and lower their payout[H-02] Canto asD — permissionless lzCompose lets anyone steal a bridged composed-message transfer[H-05] Connext routers are not enforced to repay the Aave Portal loan[H-46] TOFT leverageDown always fails when the TOFT wraps the native gas tokenAbster Freefall: A player who staked a game in the small-pool token (USDC) claims the payout out of the larAccountable: A partially-filled redeem controller re-requests; the never-decremented request.totalValueAccountable: A RequestPrice redeemer who locked a 100-asset guarantee at request-time price (1e18) is sAccountable: An async-pending cancel leaves its redeem request queued with shares intact while pendingCAccountable: fulfillCancelRedeemRequest calls _reduce with the pendingRedeemRequest that _fulfillCancelAjna H-05 — cross-pool reward-cap underflow bricks unstake / claimRewardsAjna H-06 — a bankrupt bucket wipes a lender's already-earned staking rewardsAlchemix: A malicious veALCX holder pokes 3x in one epochAlchemix: A veALCX holder calls poke() 3x within one epoch (poke lacks the onlyNewEpoch guard that vAmmplify: A compounding maker on a width-8 non-visited node is credited only 1/8 (1 ether) of the 8Ammplify: A user's 100+100 uncollected UniV3 position fees are collected by the decomposer and sweptAnyone can re-initialize the swapProxyAstrolab: cancelRedeemRequest burns another user's sharesAttacker can stall Forta vault undelegations (locked funds via balance donation)AZTEC confidentialApprove signature replay / revocation inversionAZTEC Swap validator: missing elliptic-curve pairing checkBarter DAO: A malicious taker re-enters swap() for a second same-maker order sharing the same takerTokBarter DAO: A one-time signed order authorizing a single 100-makerToken fill is replayed after the makBearCave: reentrancy in claim mints the whole HoneyJar supply for freeBlueberry HyperEVM Vault: donated tokens inflate share price but can never be redeemedBlueberry HyperEvmVault: _calculateFee double-subtracts requestSum.assetsBlueberry HyperEvmVault: a never-cleared redeem request blocks other withdrawalsBlueberry HyperEvmVault: redeem preview converts on the caller, not the share ownerBlueberry: getRate() ignores szDecimals, under-pricing spot assets 100xBlueberry: requestRedeem never deducts redemption requests from vault totalsBlueberry: withdraw() equity check bypassed by a stale once-per-block precompileBMX: An attacker with two addresses in different finalizeEpoch tally batches unstakes 1000e18 sBOB: A user who re-stakes after delegating governance can never withdraw: unbond()/instantWithdBuck Labs: A late inflow disqualifies account A but leaves its 100-token balance in currentEligibleSuBuck Labs: Stale totalExcludedSupply (1Buck Labs: The BandConfig struct mismatch makes LiquidityWindow ABI-decode floorBps from PolicyManageBurve: ERC4626ViewAdjustor reverses toNominal/toReal, inflating LST depositsBurve: Fee bypass in ValueFacet.removeValueSingleBurve: Incorrect cumulativeValue in LiqFacet::addLiq mints too few sharesBurve: incorrect netting zeroes the deposit and over-withdrawsBurve: NoopVault donation attack drains a Closure's assetsBurve: removeValueSingle withdraws less than required (unaccounted tax)carryVoteForward() enables double votingCatalyst: checkIfBeneficiaryIsATrustedSafe validates only the Safe proxy codehashCoinflip: pending stake counted as liquidity, drained by a prior stakerColbfinance: Any whitelisted user loops deposit + early-withdraw to inflate the global totalDepositToPrCove: stale basket USD value passes an over-deviated rebalanceCovenant: With protocol fees onCrestal Network: Payment::payWithERC20 is public — anyone can drain an approved victimCryptoLegacy: Vesting mixes a live rebasing balance with a stored total, so a rebase makes equal shares pay unequallyDYAD: updateXP can be omitted during liquidationElytra: A user's elyAsset is burned on requestWithdrawalElytra: getTotalAssetTVL keeps counting the unstaking-vault backing of a pending withdrawal whoseElytra: Missing 1e18 scale collapses tempElyAssetPrice to 2 (far below the 18-decimal oldElyAssetPElytra: receiveFromDepositPool reads balanceBefore and balanceAfter with no transfer between themElytra: receiveFromStrategy increments the vault's claimableAssets without decrementing the deposiElytra: static strategy-allocation tracker mis-reports vault TVLEntertainmint — a creator retargets raise currency after mintingEpoch Island: withdrawForfeit recomputes the forfeit on an un-scaled reward base, so partial forfeits over-repayEtherspot: A smart-contract wallet's partial invoice payment (40e18 tokens) is permanently locked inEuler HookTargetStakeDelegator double-counts the migrated stakef(x) Protocol: An attacker uses dust redeems (no minimum rawDebt) to append 800+ child nodes to a tick'sFluid DEX v2: _processNormalSupplyAction permits an uncapped withdrawalFolks Finance: Missing utilisation-ratio guard: on a fresh pool the attacker pushes totalDebt (1e18) farForte Float128 Ln.ln silently accepts non-positive inputs (mispriced settlement / stolen collateral)Gains Network gTrade: decrease position withdraws realized PnL twiceGains Network gTrade: pre-v9.2 trades escape half their spread and price-impact chargesGains Network: holding-fee accounting under-collects for the vaultGigaverse: GameNFT._update bricks minting and burning of soulbound tokensGTE: A maker order ground to a sub-minimum one-lot dust rests at the front of the book; a subseGTE: Non-strict crossing check traps min-tick backstop bidsGTE: order.prevOrderId written to a memory copy, never persistedGTE: swap() fails to charge the launchpad fee from the swapperH-1: USDC rewards are never distributed if _updateRewardsStates is triggered too oftenHarmonix Finance: Any unprivileged EOA calls the unprotected public testFinalizeSettlement() to flip settlemHarmonix Finance: Anyone front-runs finalizeSettlement() by directly transferring 1 wei of purchaseToken toHinkal: Merkle insert never stores the top root once the tree is half-full, locking every depositHinkal: Tree capacity guard uses != instead of <=, letting an overflow overwrite an earlier commitmentHYBUX: A user unstaking through the router forfeits their entire accrued reward (1000 HYBUX): _unHYBUX: Attacker replays a legendary-rarity (weight-100) signature from one NFTStaking deploymentHyperhyper: PUT liquidity check ignores the payout tokenHyperlend: After the first successful collateral supply for a tokenHyperstable: Non-perpetual locks gain extra delegation powerIntentX: claim() reads pending rewards for the zero address, then wipes the caller's real balance unpaidItos: reentrantSettle self-transfer bypasses paymentKarak NativeVault: activeValidatorCount is never incremented, bricking every snapshotKinetiq: reactivated validator retains stale balance (underflow DoS)Kinetiq: rebalance request uses an outdated validator balanceKinetiq: reportSlashingEvent reverts when the stale balance is below the slash amountKittenSwap: CLGauge creation lacks access controlKittenSwap: CLGauge sends staking rewards to itselfKittenSwap: distributing a stale zero-vote period resets a gauge's reward rate to 0KittenSwap: ExternalBribe.earned skips one epoch of rewardsKittenSwap: gauge deactivation destroys accrued rewardsKittenSwap: getRewardForPeriod lets a voter claim a still-open future periodKittenSwap: killed-gauge distributions can be replayed to block valid payoutsKittenSwap: missing lastMintedPeriod update allows unlimited mintingKittenSwap: permissionless voting through Voter::carryVoteForward()KittenSwap: same-block delegation bricks the vote-move loopKittenSwap: split can create locked data with an arbitrary ownerKittenSwap: votingReward not set on Gauge traps all swap feesLEND (Lend-V2): cross-chain liquidator seizes collateral without providing repaymentLend V2: _handleBorrowCrossChainRequest distributes LEND on an already-inflated balanceLend V2: a liquidated CoreRouter overpays early redeemers and strands the lastLend V2: cross-chain collateral is miscounted as zero in borrowWithInterestLend V2: cross-chain liquidation check misuses payload.amountLEND V2: cross-chain liquidation computes maxLiquidatable incorrectlyLend V2: cross-chain liquidation reduces debt by the collateral seizedLend V2: incorrect LEND reward distribution for cross-chain borrowsLend V2: wrong lToken seize amount in cross-chain liquidationLend: borrower can redeem collateral immediately after a cross-chain borrowLend: borrowWithInterest scales cross-chain debt by the same-chain borrow indexLEND: claimLend never resets accrued rewards, draining LEND reservesLend: CoreRouter.borrow() uses an incorrect collateral checkLEND: CoreRouter.redeem overpays a precomputed amount, draining its reserveLEND: CoreRouter.supply credits lTokens with a stale exchange rateLEND: Cross-chain borrow ignores existing debt in collateral validationLEND: cross-chain liquidation uses the wrong srcTokenLend: cross-chain repayment updates the wrong borrow balanceLEND: cross-chain repayment wipes the borrower's same-chain debtLend: liquidation protocolReward is permanently stuckLoopFi PrelaunchPoints — H-01: availability-of-deposit invariant can be bypassedLoopVaults: inverted _vestingInterest() enables an MEV sandwichLucidly: incorrect parameters brick certain functionsMajority Protocol: An attacker's referrer claims 10 MJT of unbacked referral rewards (5 sock-puppets join+leaMajority Protocol: In a game with no referrersMalda: A semi-trusted rebalancer forwards the operator-suppliedManifestFinance: A FULL_RESTRICTED (blacklisted/sanctioned) caller successfully deposits and mints 1000e18ManifestFinance: The first depositor into a fresh (totalSupply==0) sUSH vault receives 0 shares for a positMultipli: Reported yield instantly reprices shares, so a same-block sandwich siphons the LP's yieldMyriad: An oracle-voided market (outcome -1) resolves without setting voidedPayoutsNLX Oracle: multiple in-block price fetches enable risk-free arbitrageNotional Finance: Curve-gauge LP stakers receive 0 accrued CRV on exit because _unstakeLpTokens calls withdrNotional: migrateRewardPool is ineffective due to an immutable reward poolNUTS Finance: A valid large feed price (>~$100k) overflows getPrice()'s plain 256-bit compositePrice *NUTS Finance: Because rebase()'s oldD>newD branch never syncs balances/totalSupplyOlas H-02 — Arbitrary tokens and data can be bridged to GnosisTargetDispenserL2OpenLeverage LPool.doTransferOut — native transfer 2300-gas stipend freezes contract lenders' fundsOrigin Dollar (OUSD): CompoundStrategy.liquidate() ignores Compound's redeem error codeOstium: A 3 USDC liquidation fee routed via OstiumVault.receiveAssets enters the vault's USDC balaOstium: unlockDeposit() socializes deposit discounts into trader PnL, leaving the vault insolventOuroboros: permanent buildsPOL flag locks staked positions foreverPanoptic: BuilderWallet init() is unprotected and re-initializableParaSpace: uint8 asset index truncates past 255 assets, colliding slotsPear: Any caller redeems a victim's ERC4626 vault shares to themselves — victim's 1000e18 sharesPino C-01 — Curve::withdraw strands users' native ETHRadius Technology: Expired auth tokens are pruned from the custom group ledger but never burned from the authRebaseReward deposits the wrong token on claimRegnumAurum: A dust borrow resets position.positionIndex to the current usageIndex while adding only prRegnumAurum: parameter change skews the interest gettersRemora: A single canTransfer from InvestorA inflates the allowance of EntityB and EntityD (entitieRemora: resolveUser migrates a departing investor's pending dividend into DividendManager._resolveRenzo bridge: xezETH supply desyncs from ezETH backing (H-06)Reserve quoteCustomRedemption reverts once an old basket asset is unregistered (redemption DoS)Reserve StRSR: a small RSR seizure can trigger a new era and wipe a still-valuable stake poolResolv: transferFee() uses safeTransferFrom instead of safeTransferRipIt: A single attacker spin with a large user-controlled _prizeCount over-reserves the entire pRipIt: A spin with prizeCount=2 makes SpinLottery's min-guarantee reserve the lone scarce high-raRipIt: acceptOffer books the offerCurrency fee into the single acceptedCurrency-denominated totalRipIt: burnPacketFromInventory swap-pops the tail packet into the burned slot but never updates tRipIt: Two same-block INSTANT_OPEN_PACKET requests for a packetType with only 1 bundle both passRipIt: When the first prizeId is selectedRoots: missing queueDropBoost strands staking rewardsSofamon: commitToMint signatures can be replayed using different addressesSperax Farms: future farm-start underflows elapsed time, letting the first depositor drain the whole reward poolSperax Farms: same-block deposit + withdraw leaves the reward-weight snapshot inflatedSpinLottery: prize-lock/weight mismatch bricks higher-rarity spinsStakeDAO: The strategy wrapper never overrides ERC20 _updateStakehouse Protocol: A malicious LP holder uses GiantLP's unprotected ERC20 transfer to move LP into the GiantMStatusl: A griefing SLASHER_ROLE holder spams slashCommit(victimStatusl: A staker who pre-registers thousands of vaults makes slash()'s unbounded per-vault reward-Statusl: An attacker registers many same-codehash vaults naming the victim as ownerStatusl: An insider slasher dodges the commit-reveal delay queue by committing against an unusedStatusl: Attacker recovers their full staked principal via the paused-revert catch path while the SstETH: The (untrusted) vault owner calls stakeNxm to deposit the vault's 1000 NXM into a Nexus stSubsquid (tSQD): unrestricted registerTokenOnL2 lets anyone brick the L2 bridgeSubsquid: computationUnitsAvailable over-reports for short stakesSubsquid: missing toBlock check enables repeated reward distributionSubsquid: workers withdraw their bond without deregisteringSukukFi: withdraw()/redeem() lack a msg.sender==owner / allowance checkSuper DCA: An attacker's unlisted duplicate DCA/USDC V4 pool (same hook) triggers the shared per-tokeSuper DCA: Cashback elapsed-time not clamped to campaign startSuperform: A 1-wei SuperVault share transfer clones the sender's fulfilled-redeem state (maxWithdraw=Superform: A depositor who sets receiver != controller can never redeem: shares mint to the receiverSuperform: A strategist sandboxed by a strategy-specific hooks root (that excludes the transferErc20Superform: A user who cancels a pending redeem has their per-controller accumulatorShares/accumulatorSuzaku: disabledTime >= timestamp counts a boundary-disabled operator as active, diluting real operatorsSuzaku: Reward distribution divides by a zero historical-epoch stake, bricking the epoch foreverSuzaku: Undistributed-rewards sum double-counts a multi-vault curator, stranding reward tokensTanssi: permissionless sendCurrentOperatorsKeys() spams the bridge for freeTenbin: A third-party direct deposit into the underlying ERC4626 vault is mislabeled as protocol rTenbin: One delegated redeem order replayed 3x drains 3000e18 collateral to the attacker (order.reTenbin: Revenue accounting never subtracts vault lossesTerplayer: A staker's legitimate withdraw() reverts on arithmetic underflow: ceiling-division delegatThreshold: Every Wormhole tBTC redemption reverts because the redeemer's satoshi balance is never creTokenOps: withdraw() is gated by isActive, so revoking a grant freezes already-vested-but-unclaimed tokensTraitForge H-01 — wrong minting logic based on total token count across generationsUniswap Hooks: A currentTick misaligned to tickSpacing makes AntiSandwichHook's verbatim tick != currentY2K Earthquake — depositFee can be bypassed via the deposit queueY2K Earthquake — earlier rollover-queue users can grief later users (permanent rollover DoS)Yield Ninja: First-depositor share inflation via unrounded share formulaYuzuUSD: A withdrawer who opens a redeem order is paid the fixed pre-yield amount (100e18) at finalYuzuUSD: Redeem fee left in poolSize inflates share priceZero Staking: full-exit unstake deletes the Staker struct and wipes non-zero owedRewardsZero Staking: reentrancy in stake() re-credits a stale reward timestamp to drain the reward poolZKPay: emptying ETH via a NATIVE query that pays nothingzkSync SSO ERC1271Handler.isValidSignature accepts an owner signature with no account/chain binding (replay)