SunWeb3Sec/DeFiHackLabs
SunWeb3Sec/DeFiHackLabs has 6,838 GitHub stars and 1,491 forks. GitHot measured +2 stars in 24 hours. Last checked 2026-11-07 10:33 UTC. Last push 2026-10-30.
Reproduce DeFi hacked incidents using Foundry.
Measured star growth
- in 24h
- +2
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalDeFi Hacks Reproduce - Foundry
Reproduce DeFi hack incidents using Foundry.
906 incidents included.
Let's make Web3 secure! Join Discord
Notion: 101 root cause analysis of past DeFi hacked incidents
Disclaimer: This content serves solely as a proof of concept showcasing past DeFi hacking incidents. It is strictly intended for educational purposes and should not be interpreted as encouraging or endorsing any form of illegal activities or actual hacking attempts. The provided information is for informational and learning purposes only, and any actions taken based on this content are solely the responsibility of the individual. The usage of this information should adhere to applicable laws, regulations, and ethical standards.
Table of Contents
- Getting Started
- Who Support Us
- Donate Us
- List of Past DeFi Incidents
- Transaction debugging tools
- Ethereum Signature Database
- Useful tools
- Hacks Dashboard
- List of DeFi Hacks & POCs
Getting Started
Follow the instructions to install Foundry.
Clone and install dependencies:
git submodule update --init --recursive
Web3 Cybersecurity Academy
All articles are also published on Substack.
OnChain transaction debugging
- Lesson 1: Tools ( English | 中文 | Vietnamese | Korean | Spanish | 日本語 )
- Lesson 2: Warm up ( English | 中文 | Korean | Spanish | 日本語 )
- Lesson 3: Write Your Own PoC (Price Oracle Manipulation) ( English | 中文 | Korean | Spanish | 日本語 )
- Lesson 4: Write Your Own PoC (MEV Bot) ( English | 中文 | Korean | Spanish | 日本語 )
- Lesson 5: Rugpull Analysis ( English | 中文 | Spanish | 日本語 )
- Lesson 6: Write Your Own PoC (Reentrancy) ( English | 中文 | Spanish | 日本語 )
- Lesson 7: Hack Analysis: Nomad Bridge, August 2022 ( English | 中文 | Spanish | 日本語 )
Donate us
If you appreciate our work, please consider donating. Even a small amount helps us continue developing and improving our projects, and promoting web3 security.
- Gitcoin - Donate DeFiHackLabs
- EVM Chains - 0xD7d6215b4EF4b9B5f40baea48F41047Eb67a11D5
- Giveth
List of Past DeFi Incidents
20261014 UNCXSmartTokenVesting
20261006 SetProtocol ETHMACOAPY
20260921 GaslessReservoirEnabler
20260625 OceanBPoolSideStaking
20260420 ThetanutsVaultShareRounding
20260419 AaveRebalancerCreditDelegation
20260407 SquidMulticallAllowanceDrain
20260331 WhalebitOracleManipulation
2025
20250725 WhereIsMyDragonTreasure
20250716 StrategyLlamaLendConvex
20250702 ActivePoolUrgentRedemption
20250509 Nalakuvara_LotteryTicket50
2024
20240703 UnverifiedContr_0x452E25
20240610 UwuLend - Price Manipulation
2023
20231201 UnverifiedContr_0x431abb
20230715 USDTStakingContract28
2022
20221024 MulticallWithoutCheck
20221011 Rabby Wallet SwapRouter
20220908 Ragnarok Online Invasion
20220701 Quixotic - Optimism NFT Marketplace
20220624 Harmony's Horizon Bridge
20220608 Optimism - Wintermute
20220430 Rari Capital/Fei Protocol
2021
Before 2020
Transaction debugging tools
Phalcon | Tx tracer | Cruise | Ethtx | Tenderly | eigenphi
Ethereum Signature Database
Useful tools
ABI to interface | Get ABI for unverified contracts | ETH Calldata Decoder | ETHCMD - Guess ABI | Abi tools
Hacks Dashboard
Slowmist | Defillama | De.Fi | Rekt | Cryptosec | BlockSec | Telem
List of DeFi Hacks & POCs
20261028 ZkLinkNova - zkLink Nova's L1 Arbitrator authenticates a cross-chain claim with a transient finalizeMessageHash that claimMessage never clears and never re-checks per call, and the SyncL2TxHashRelayer that feeds it is public with no role, so an attacker populates a valid transient hash with one relay call then reuses it in a second call that points the claim target at EthereumGateway.sendMessage, which runs ZkLink.syncBatchRoot under the gateway identity and installs an attacker-chosen l2LogsRootHash for a batch, after which withdrawals finalize against forged proofs that the real on-chain verifier accepts
Lost: ~$783K reported across the two exploit txs. This PoC reconstructs the first tx, draining 22.431294525563808989 ETH plus 11 ERC20 balances (including 18,113.448053 USDC, 3,360.898152 USDT and 0.17360197 WBTC) from the L1 escrow and the ERC20 bridge to the attacker. A fresh attacker contract drives the real public relayer, Arbitrator, EthereumGateway and ZkLink in one transaction with no vm.mock, no vm.store and no vm.prank of any protocol identity; the attacker-chosen root and every Merkle proof are the real on-chain values, and proveL2MessageInclusion accepts them live because the root is installed through the legitimate syncBatchRoot path. A negative control confirms the first withdrawal reverts when the root install step is skipped
forge test --contracts src/test/2026-10/ZkLinkNovaBridge_exp.sol --evm-version cancun -vvv
Contract
20261027 FenceTranchePool - a Valinor Digital tranche pool on Avalanche settles each UTC day by subtracting a scheduled principal payment from the borrower's outstanding principal with no USDC actually repaid, and draw() checks the requested amount against funded principal minus outstanding principal, so at the day rollover the phantom reduction restores draw capacity that was already spent; the borrower side is permissionless, so a fresh contract opens a facility naming itself as borrower, funds the principal with an Aave flash loan and draws it straight back out, then one UTC day later replays the identical draw() calldata to pull the pool's own standing liquidity
Lost: ~$1.013M (1,013,353.611686 USDC) drained from the pool on Avalanche. This PoC forks one block before the first draw, deploys a fresh borrower from a new EOA with no role or whitelist, flash-loans the setup principal from Aave V3, opens the facility and draws once so the flash loan is repaid in the same call (net zero), warps across the UTC midnight boundary (day index 20753 to 20754) so the phantom settlement credits the scheduled principal, and replays the identical draw() to drain the pool's own liquidity to zero. The only value injected is the Aave premium (~506.68 USDC, the attacker's own capital, which the on-chain helper was pre-funded with), sourced from a forked USDC holder rather than minted. A negative check confirms the second draw reverts without the day rollover. The pool source is not verified on Snowtrace, so the behaviour is established from the two on-chain traces, not from source
forge test --contracts src/test/2026-10/FenceTranchePool_exp.sol --evm-version cancun -vvv
Contract
20261026 SafeApprovalSquat - the Safe held standing unlimited ERC20 approvals (USDC, WAVAX, WETH.e, BTC.b) set 2026-03-07 and never revoked to a counterfactual address that was empty on Avalanche. That address is the 13th CREATE output of a Safe CreateCall instance which is itself the deterministic CREATE2 output of the Safe Singleton Factory (salt 0, fixed initcode). An ERC20 approval is granted to an address, not to a specific caller, so any fresh EOA can reproduce the same CREATE2-then-CREATE math, occupy the address and call transferFrom to spend the approvals, with no Safe key, signature or role
Lost: ~$7.45M drained from a 2-of-7 Safe on Avalanche C-Chain: 3,078,123.681646 USDC, 351,374.076087 WAVAX, 183.747433 WETH.e and 10.773856 BTC.b. The original attacker tx was reverted after an MEV bot front-ran it and landed the identical drain. This PoC forks before the drain and reconstructs the attacker side with no etch and no pre-positioned contracts: it deploys the CreateCall instance through the Safe Singleton Factory, burns 12 throwaway deployments to advance its nonce, deploys the sweeper as the 13th CREATE so it lands at exactly the pre-approved address, verifies the address, then sweeps the four standing approvals out of the Safe for the measured basket above
forge test --contracts src/test/2026-10/SafeApprovalSquat_exp.sol -vvv
Contract
20261025 Yapeswap - Yapeswap's WorkersUnion DAO carries a zero quorum (minimumVotes and minimumVotesForProposing are both 0) and factory.feeToSetter, held by the DAO timelock, can re-point the factory's Yearn registry and operator, while each YapePair farms its reserves into whatever vault registry.latestVault(token) returns and credits every token it ships out back to farming[token] so its keepBalance invariant (erc20 balance + farming) still holds after the real tokens have left, so anyone can buy a dust amount of the freely-traded YAPE, lock it for sqrt-weighted voting power, pass a proposal that moves feeToSetter to themselves through real voting and the timelock, swap in a registry pointing at a vault they own, and force a 100% rebalance that ships every pair's reserves straight to the attacker
Lost: ~$21.9K drained from six Yapeswap pairs on Ethereum; the attacker contract received DAI 1,691.8, USDC 2,286.2, USDT 8,386.3, WETH 10.516 and WBTC 0.0316. This PoC runs the full governance capture end to end on a pre-execution fork (buy YAPE, lock for voting power, propose, vote, schedule, execute so factory.feeToSetter moves to the attacker through the real DAO and timelock, with no prank and no storage write) and drains the directly-liquid reserves through the malicious registry for a measured 2,254.32 USD; the larger on-chain figure additionally pulled each pair's Yearn-farmed balance back first via setFarmingRatio(0,0)+rebalance, a Yearn v3 allocator withdrawal that is not replayable in pinned pre-execution fork state
forge test --contracts src/test/2026-10/Yapeswap_exp.sol --evm-version cancun -vvv
Contract
20261024 X100Senate - the X100 Senate treasury has no snapshot and no timelock, so applyForSenate() is permissionless and propose, vote and execute run in one block, so the attacker flash-borrows 1,942,457 USDT from Aave, buys 38,200 X and freezes it across two helper contracts to seize 2 of 3 senate seats, then passes a DexTreasury v3Swap that dumps 400,000 treasury X into an attacker-created PancakeV3 pool at a manipulated price and resells it on the deep Uniswap pool, repaying the flash loan for a 4,749,726.03 USDT net gain
Lost: ~4.75M USDT drained from the X100 treasury on Ethereum in a single atomic tx; the attacker netted 4,749,726.10 USDT. This PoC rebuilds the full capture on a fork at the parent block and lands at 4,749,726.037865 USDT, a 0.06 USDT drift from fork re-ordering
forge test --contracts src/test/2026-10/X100Senate_exp.sol --evm-version cancun -vvv
Contract
20261020 SliceFundsModule - permissionless entry point (0x9d2edfac) credits each caller-supplied source's returned amount as a deposit without verifying the module's balance rose, then pays it out of pooled reserves when the flag is set
Lost: ~$41K drained from Slice's FundsModule on Base: 8.716935563284127414 ETH and 19,820.734002 USDC to the attacker EOA. The attacker first calls 0x9d2edfac with flag false against the real Slice product contracts to pool other users' funds into the module, then with flag true against two self-deployed source contracts that return a non-zero amount while transferring nothing, paying the pooled reserves out to itself. The PoC reconstructs all 8 ETH legs and 55 of 66 USDC legs; the 11 reverting legs send to recipients that are themselves slicers and do not feed the drainable balance, matching the on-chain loss to within the module's 1-unit payout rounding
forge test --contracts src/test/2026-10/SliceFundsModule_exp.sol --evm-version cancun -vvv
Contract
Link reference
https://basescan.org/tx/0x02b039a6345348d984e4a0b70dd233127772206e61ce82c390c4709c0b8d790a
20261019 Argent - an Argent-style smart wallet relays owner and guardian signatures through an execution module that never consumes a nonce or records the signed-message hash, and whose signed deadline is unchecked and overflows, so two signatures that authorized wallet 0xe545 in 2020 and 2021 still pass today and can be resubmitted by anyone, and a recovery-deadline setter whose attacker-supplied period wraps the deadline into the past forces an immediate same-transaction owner change, so the attacker flash-borrows WETH from Balancer, replays the old signatures to drive the wallets to buy MARK in a thin MARK/WETH pool while trading around them, and repeats across the e545 and 5a79 wallets for 50,655.92 USDC
Lost: ~$59.8K reported by SlowMist, ~50,655.92 USDC measured on-chain (48,778.499253 from the e545 wallet and 1,877.419234 from the 5a79 wallet). The attacker lifts two owner and guardian signatures that were valid on the e545 wallet at blocks 11266059 (2020-11-16) and 11948627 (2021-02-28) and resubmits them through the execution module, which has no nonce or used-hash check and does not enforce the signed deadline, after a recovery-deadline overflow flips the wallet owner in the same transaction. The PoC forks each leg at the parent of its attack tx, redeploys the attacker's own creation bytecode from a fresh address, and reproduces both legs to the unit
forge test --contracts src/test/2026-10/Argent_exp.sol --evm-version cancun -vvv
Contract
Link reference
https://etherscan.io/tx/0xbfed8d33561ed5f9cbd0f4e62a5bbd20187a64f3e22180148dcb58ed6ebaa795
20261018 AlpsCon - AlpsCon AI Trade Hub still trusts the canonical Hardhat default account 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 on its onlyVerified whitelist, and that account's private key is public, so the attacker uses an EIP-7702 authorization signed with the known key to delegate the account to exploit code and pass every reward gate, and because each reward hub version imports the previous version's balances through migrate() and then pays claimServiceResults() against the version's already-accumulated profitPerShare while the fresh deposit's entryProfitPerShare is still zero, a brand-new flash-funded ALPS stake in the still-open V6 hub is credited the full historical reward history, so the attacker flash-borrows 1,027,990 USDC from Aave, buys and stakes ALPS, imports the stake forward, over-claims the rewards out of V7/V8/V9, unstakes and sells back, and repays the loan for a 152,295.3625 USDC net gain
Lost: ~152.8K USDC drained from the AlpsCon AI Trade Hub reward pools on BNB Chain; the attacker EOA received 152,295.3625 USDC before gas, with the Aave flash loan of 1,027,990 USDC repaid in full at 1,028,503.995 USDC. This PoC reconstructs the dominant V9 over-claim leg at a 129,775.6074 USDC net; the remaining 22,519.75 USDC is the V7/V8 cascade inside the real single claimServiceResults() call, which an equivalent standalone call does not reproduce
forge test --contracts src/test/2026-10/AlpsCon_exp.sol --evm-version prague -vvv
Contract
20261017 TIPMine - TIPMine.mine() is permissionless (its only guards are a supply flag and a once-per-day timer that is already open at lastMineTime 0), and it burns and pushes 2% of the TIP supply straight out of the live TIP/SOL Pancake pair through the TIP token's burnFromPool and distributeFromPool, each of which force-syncs the pair, so the pair's TIP reserve collapses while its SOL reserve is untouched and TIP reprices ~10^8x, letting anyone holding TIP sell it back into the pool and take the SOL side, so the attacker deals in ~36k SOL of flash capital, buys a little TIP then dumps 35,121 SOL to move most of the pool's TIP onto its own side, calls the ungated mine() to burn the pool's remaining TIP down, and sells the held TIP back for almost the entire SOL reserve
Lost: ~667 SOL drained from the TIP/SOL pool on BNB Chain, taken to the attacker EOA as 667.228863551156127021 SOL (SOL Transfer, log index 182); the PoC reconstructs 706.253909658913182860 SOL, the pool's full ~715 SOL reserve, with the ~39 SOL difference being the real multi-source flash-sourcing cost (a Venus-fork SOL borrow plus 13 ecosystem-pool flash loans) that the deal()-modelled, fee-free capital does not incur
forge test --contracts src/test/2026-10/TIPMine_exp.sol --evm-version cancun -vvv
Contract
20261017 BiFi - the idle BiFi USDT market freezes its per-block exchange rate and stores the entire 264,059-block inactive gap on the first action, then the interest model charges that full ~36 day gap of deposit interest on every later action in the same block at a utilization rate the attacker sets through permissionless deposit and borrow, so the attacker flash-borrows 40.5M USDT from Morpho, deposits it to seed the frozen gap, borrows to spike utilization, runs a repay and withdraw loop twice to cash out the inflated deposit interest, then repays the loan and swaps the 165,574 USDT surplus to 68.0572 WETH
Lost: ~165,574 USDT drained from the BiFi USDT market on Ethereum, swapped to 68.057203111718789216 WETH (the PoC reproduces the surplus to 68.057464 WETH, a sub-0.0003 WETH intra-block drift from the parent-block fork point); the profit was taken one block after the exploit contract was deployed by the MEV bot c0ffeebabe front-running the same permissionless mechanism
forge test --contracts src/test/2026-10/BiFi_exp.sol -vvv
Contract
20261015 KolanHook - KolanHook settles its escrowed ETH buy-windows at the same Uniswap v4 pool's instantaneous spot price with no TWAP or bound and accept() is ungated once a window has expired, so the attacker flash-borrows 6.7 WETH from Balancer, swaps it to move the KLN spot, then calls accept() on two expired windows it does not own so _closeWindow() mispositions their escrowed ETH as single-sided liquidity around the manipulated price and runs an unbounded buyback, and reverses the swap back through that freshly placed ETH liquidity before repaying the loan for a 1.279453 ETH net gain
Lost: 1.279453 ETH net to the attacker EOA on Ethereum (surplus 1.279914429958618589 ETH after the 6.7 WETH Balancer flash loan is repaid, minus ~0.00046 ETH gas), draining KolanHook's full 2.309861 ETH of escrowed window funds
forge test --contracts src/test/2026-10/KolanHook_exp.sol --evm-version cancun -vvv
Contract
20261014 UNCXSmartTokenVesting - VestingManager pools every deposit of a given token in one contract and release() pays a slice of the full contract balance over a global share count, release() debits that global count but leaves the position's deposited shares in place and cancel() then debits the same shares a second time, so the attacker flash-borrows each token, creates self-owned vestings whose tranches are already elapsed and so instantly releasable, releases and cancels soft helper vestings to shrink the share denominator while donating token straight into the pool to raise the balance, then releases a payout vesting against the corrupted denominator and inflated balance to over-withdraw the other vesters backing tokens across five ERC-20s
Lost: ~88-89K USD across five ERC-20s on Ethereum, retained after the per-token flash loans are repaid and each reproduced to the wei against the tx transfer logs (EDGEN 55,601,598.708417972560603048, ZC 9,055,847.637887682268154756, pepecoin 40,155.284285661160205717, LO0P 65,372.217059159993437512, PAAL 113,657.766933968), the working capital flash-borrowed per token from Uniswap V3 (EDGEN), Uniswap V2 (pepecoin, PAAL) and Uniswap V4 (ZC, LO0P) and repaid in the same leg
forge test --contracts src/test/2026-10/UNCXSmartTokenVesting_exp.sol --evm-version cancun -vvv
Contract
20261009 BitBay - the UsdcDaiV4Vault _withdraw liquidity==0 branch pays the vault entire DAI and USDC balance to the caller with no share-weighted cap, and reposition() is permissionless once the tick is outside the narrow LP range, so the attacker deposits one wei for a single share, swaps the Uniswap v4 pool to push the tick onto tickUpper, calls reposition to recompute a position whose liquidity rounds to zero and leaves the pooled funds as raw balance, then redeems that one share to sweep the whole 14838 DAI pool
Lost: 14838.466608989135865711 DAI swept from the vault by a single 1-wei share on Polygon (reproduced to the wei against the on-chain Withdrawn amount), the attacker then unwound the drained DAI plus flash-loaned capital to a net ~14,813 USDC profit
forge test --contracts src/test/2026-10/BitBay_exp.sol --evm-version cancun -vvv
Contract
20261008 X7Finance - X7Pioneer's claimRewards() adds the unaccounted ETH balance delta into totalRewards on every call but only refreshes lastETHBalance when claimable is non-zero, so calling it with an empty tokenIds array re-counts the same donated delta each time and inflates the per-token reward until a single owned NFT drains the whole pool, the ~26.96 ETH donation supplied by a flash loan and repaid from the drain
Lost: ~6.78 ETH to the attacker on Ethereum (attacker EOA balance rose 6.777538 ETH; this reconstruction nets 6.793749214542107991 ETH, the difference being the on-chain Aave flash-loan premium and gas, neither modeled); the single draining claimRewards([300]) pays 33.756919822234785023 ETH, matching the on-chain RewardsClaimed to the wei, with the ~26.96 ETH donation capital returned
forge test --contracts src/test/2026-10/X7Finance_exp.sol -vvv
Contract
20261006 SetProtocol - a second RebalancingSetTokenV3 vault (ETHMACOAPY) hit by the same permissionless actualizeFee() divCeil rounding, the attacker issues the rebalancing set then donates the residual base set into the vault own backing so the zero-fee recompute bumps unitShares from 12253 to 12264, then redeems the same quantity for more collateral than was deposited, the ~116,000 WETH issue/redeem size supplied fee-free by an Aave-v3-fork flash loan
Lost: 4.047988247781965824 WETH to the attacker in the first tx (reproduced to the wei) on Ethereum; two independent EOAs drained the ETHMACOAPY rebalancing set across two txs two blocks apart for ~8.11 WETH total, this PoC reconstructs the first tx (0xb54c77dae4c5ff8664779bacfb56d75242f39005b0b7778109d2f9033b9e8fc2) only, the ~116,000 WETH working capital borrowed and repaid in the same tx via a zero-premium Aave-v3-fork flash loan
forge test --contracts src/test/2026-10/SetProtocolETHMACOAPY_exp.sol -vvv
Contract
20261006 SetProtocol - actualizeFee() is permissionless and recomputes unitShares with a divCeil even when it mints zero fee, rounding the backing collateral per share up by one with no fee actually taken, so issuing the rebalancing set before the bump and redeeming the same quantity after returns more collateral than was deposited, the ~25,044 ETH issue/redeem size supplied fee-free by a Uniswap v4 native-ETH flash-accounting loan
Lost: 5.083725683631735476 ETH to the attacker (reconstructed, 0.011% over the 5.083148662083682304 ETH taken on-chain) on Ethereum; the collateral backing Set Protocol's RebalancingSetTokenV3 was skimmed through the per-share rounding surplus, the ~25,044 ETH issue/redeem working capital borrowed and repaid in the same tx via Uniswap v4 zero-fee flash accounting
forge test --contracts src/test/2026-10/SetProtocol_exp.sol --evm-version cancun -vvv
Contract
20261006 MakerDAOFlipKeeper - the dormant ETH-A flip-keeper proxy's drain selector has no ds-auth check, so anyone can call it to make the keeper vat.hope() a caller-supplied worker and then deal its four undealt 2020 ETH-A auctions and flux/exit the freed 200 WETH of collateral out
Lost: exactly 200 ETH (200.000000000000000000 WETH, 0xad78ebc5ac6200000 wei, reproduced with zero variance) to a fresh attacker on Ethereum; the dormant keeper proxy's unprotected drain settled its four undealt 2020 ETH-A liquidation auctions (#1457-1460, 50 WETH each) and swept the freed collateral out - not a MakerDAO core bug, the keeper impl's drain selector simply omits the ds-auth modifier that the contract's other functions carry
forge test --contracts src/test/2026-10/MakerDAOFlipKeeper_exp.sol -vvv
Contract
20261003 MALT - the MALT/DAI sLP runs its below-peg price recovery inside swap() before sending the output, pulling DAI from the Capital Source treasury into the pool, then checks its constant-product invariant against the final balances without separating the injected treasury DAI from the caller's own input, so a negligible 1 DAI swap is credited with thousands of injected DAI and releases a disproportionate MALT output
Lost: 13,440.581562307921517594 DAI net profit to the attacker (exactly reproduced) on Polygon; the Capital Source treasury was drained of 12,744.644506590589136718 DAI across two below-peg rebalance injections, the attacker paying just 1 DAI per exploit swap and arbitraging the extracted MALT out on QuickSwap - the ~$72K figure in the original alert does not match the on-chain reconstruction
forge test --contracts src/test/2026-10/MALT_exp.sol -vvv
Contract
20261002 GoldPesa - the GPX V4 hook rebalances protocol liquidity inside beforeSwap via a burn and TAKE_PAIR that run in the attacker's own open PoolManager unlock, and never checks the PositionManager deltas are settled first, so an unsettled mint debt parked in the same unlock nets against the hook's burn credit and the attacker walks the freed USDC out
Lost: 114,999.999186 USDC (exactly reproduced) on Base; the GPX/USDC V4 pool's protocol liquidity was burned by the hook's own hourly rebalance, and its 148,868.602188 USDC burn credit was split by the shared-unlock delta bug - 33,868.603002 USDC reached the hook while 114,999.999186 USDC paid off the attacker's unsettled mint debt and then exited to the attacker, funded by a 175,000 USDC Morpho flash loan repaid in the same tx
forge test --contracts src/test/2026-10/GoldPesa_exp.sol --evm-version cancun -vvv
Contract
20261001 FlashLoopAdapter - a Safe module authenticates its caller by asking that caller whether the module is enabled (self-attestation) and then makes an unconstrained call to a caller-supplied router, letting a fake Safe drive the adapter into draining real Safes that enabled it
Lost: 114.096151 WETH (~$305k, exactly reproduced) on Ethereum; two Safes that enabled the module as a victim were emptied - Safe #1 lost 1306.48 weETH of Aave collateral once its 1335.26 WETH debt was repaid, Safe #2 lost 6.426 weETH, all swapped to WETH via ODOS for the attacker's net
forge test --contracts src/test/2026-10/FlashLoopAdapter_exp.sol --evm-version cancun -vvv
Contract
20260930 SKYDAO - sell-path controller burns the pair's SKYDAO and syncs before the net sell is credited, latching a near-zero reserve that a direct pair.swap drains for the pair's entire USDT
Lost: 59,914.12 USDT net to the attacker (exactly reproduced) on BNB Chain; the SKYDAO/USDT PancakeSwap V2 pair lost its entire 183,482.88 USDT reserve, drained by a direct pair.swap against the reserve the sell-path burn+sync latched to ~0
forge test --contracts src/test/2026-09/SKYDAO_exp.sol --evm-version cancun -vvv
Contract
20260930 PositionManager - deposit values the vault's existing USDT at the manipulable PancakeSwap V3 spot price, so crashing the spot before depositing mints inflated shares that withdraw redeems in the same transaction
Lost: 32,080.604282 USDT (exactly reproduced) on BNB Chain; one atomic tx crashed the USDT/BTCB spot with an 8,000,000 USDT swap, then ran 24 deposit(1,000,000 USDT)/withdraw cycles to drain the vault's own PancakeSwap V3 position, the pool losing 32,096.098596 USDT
forge test --contracts src/test/2026-09/PositionManager_exp.sol -vvv
Contract
20260930 MUS - deposit refunds a first-deposit bonus and also credits it as withdrawable allocation, so a single deposit-withdraw from a fresh address returns more ETH than deposited
Lost: ~0.400168 ETH per deposit-withdraw cycle (exactly reproduced) on Ethereum; the MUS pool's standing 5.335 ETH was drained to 0 across the attack block, reported campaign total ~$36.9k across many fresh addresses
forge test --contracts src/test/2026-09/MUS_exp.sol -vvv
Contract
20260929 LPBonus - reserve inconsistency between reward accrual and LP withdrawal lets a manipulated MSN reserve inflate an LP reward claim
Lost: 92,607 USDT ($92.6k) on BNB Chain; one LP position claimed 1,442,165.713011 FIST against an accrual that funded ~940,041.612768 FIST, extracted by flash-swapping the MSN reserve down at accrual and back up at withdrawal
forge test --contracts src/test/2026-09/LPBonus_exp.sol -vvv
Contract
20260926 DAOstack - permissionless newOrganization lets an attacker hijack an existing Reputation contract and drain the Avatar
Lost: 4.025 ETH (full Genesis Alpha treasury); attacker minted 20,000 REP against the victim's real Reputation contract (supply 9,738.6 to 29,738.6, ~67% majority after a 200 REP GenesisProtocol vote-cost burn) and used it to self-install as a full-permission scheme
forge test --contracts src/test/2026-09/DAOstack_exp.sol -vvv
Contract
20260923 PancakeV3SwapHelper - Signed Swap Delta Accounting Error
Lost: 1.6488688845 BNB ($1.3K)
BSC_RPC=https://bsc-mainnet.public.blastapi.io forge test --contracts ./src/test/2026-09/PancakeV3SwapHelper_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://bscscan.com/tx/0x70bc4ff8439f74d26d454a53e9a135ac3659a958aa3462218d0db7ed55cf5104
20260921 TheRedVillage - ungated PolygonTRVRouter forwardRequest relays an attacker-supplied upgradeTo through the router's _authorizeUpgrade role on the SeasonService UUPS proxy, installing a malicious implementation that uses the proxy's TRVZooKeeper roles to pull every player's approved WETH and sweep the vault
Lost: 31.426018474517367982 WETH (~$80.7K) swept from TRVZooKeeper on Polygon; 299 players with standing WETH approvals were pulled for 31.350379502001368 WETH and the vault's pre-existing 0.075638972516 WETH was swept with them, reproduced to the wei
forge test --contracts src/test/2026-09/TheRedVillage_exp.sol -vvv
Contract
20260921 DoinGud - acceptOffer replay via missing offer cleanup on the amount=0 path
Lost: 35,380.154566 USDC net (two byte-identical acceptOffer calls each paid out 35,486.935717 USDC from escrow; funded via a UniV2 flash swap, repaid 35,593.716868 USDC)
forge test --contracts src/test/2026-09/DoinGud_exp.sol -vvv
Contract
20260921 GaslessReservoirEnabler - erc20WithTransfersAndExecute lets a whitelisted module run unvalidated transferFrom calldata
Lost: 8.72 WETH ($23.8K) across 466 victims with standing approvals to the Enabler; PoC reproduces 3 victims, 2.3546 WETH ($6.4K, ~27% of the WETH-leg loss)
forge test --contracts src/test/2026-09/GaslessReservoirEnabler_exp.sol -vvv
Contract
GaslessReservoirEnabler_exp.sol
20260921 InternetToken - permissionless swapV3 with caller-supplied pool lets a fake callback mint INT arbitrarily
Lost: 764,145,702 INT + 5.846988 WETH (attacker minted 925.41M INT total, dumped 161.27M into the real INT/WETH pool for the WETH, reproduced to the wei)
forge test --contracts src/test/2026-09/InternetToken_exp.sol -vvv
Contract
20260918 Likwid - missing pairDelta update in leverage=0 margin borrow freezes AMM quote
Lost: 74.31 BNB (reproduced to within 3 wei)
BSC_RPC=https://bsc-mainnet.public.blastapi.io forge test --contracts src/test/2026-09/Likwid_exp.sol -vvv
Contract
20260916 Startale - transient storage init flag outlives the constructor and lets anyone reinitialize an ERC7579 account and drain it
Lost: 427.551160 USDC drained in this batch tx (32.555561 USDC reproduced across 3 of 23 victim accounts; ~$2,876 USDC+USDT aggregate across 41 known batches)
forge test --contracts src/test/2026-09/Startale_exp.sol -vvv
Contract
20260916 Flamincome - permissionless Convex stakeFor inflates Strategy NAV and lets VaultYUSDT overpay on withdrawAll
Lost: ~$345.9K USDT net attacker profit (gross Strategy loss ~$595K in aUSDT+USDT)
forge test --contracts src/test/2026-09/Flamincome_exp.sol -vvv
Contract
20260916 PrimeFinance - permissionless stale signed oracle report overwrite drains lending pool
Lost: 425.5 WHYPE ($33.4K) drained from the lending pool reserve
forge test --contracts src/test/2026-09/PrimeFinance_exp.sol -vvv
Contract
20260916 Nimiq - GSN forwarder skips signature check, relying solely on attacker-chosen paymaster
Lost: ~$50,463.79 (USDC, USDT0, USDC.e drained from a swap-liquidity wallet's standing approvals)
forge test --contracts src/test/2026-09/Nimiq_exp.sol -vvv
Contract
20260915 RsETHSafeModule - nested self-referential multicall authorization bypass drains Gnosis Safe via DELEGATECALL
Lost: 2,900 aEthrsETH (~$7.8M gross; 2,882.37 rsETH / ~$7.73M net to the MEV frontrunner)
forge test --contracts src/test/2026-09/RsETHSafeModule_exp.sol -vvv
Contract
20260915 BonfireSwap - missing caller authorization lets anyone force-sell any approved holder's tokens
Lost: 66 BNB ($47-50K); 58.78 BNB reproduced from a 5-victim subset (~98.7% of tokens drained)
forge test --contracts src/test/2026-09/BonfireSwap_exp.sol -vvv
Contract
20260912 SpiralHookV2 - Uniswap V4 spot-price borrow plus tx.origin-keyed same-block guard bypass
Lost: ~10.70728 ETH (reproduced exact to the wei)
forge test --contracts src/test/2026-09/SpiralHookV2_exp.sol --evm-version cancun -vvv
Contract
20260912 YamFinance - dormant-DAO quorum governance takeover drains legacy UMA farming contracts
Lost: ~$121K (48.085 WETH + 763.101 UMA)
forge test --contracts src/test/2026-09/YamFinance_exp.sol -vvv
Contract
20260911 ORB - leveraged pool buyout + refund-before-sell reentrancy drains burnLP-depleted reserve
Lost: 44.9-45 BNB ($32,610.72)
forge test --contracts src/test/2026-09/ORB_exp.sol -vvv --evm-version cancun
Contract
20260911 GDC - chained EOA bypass, liquidity misclassification, burn mismatch, and reentrant tax-free exit
Lost: ~35.34 BNB (35.337151495976986490 BNB reproduced exact to the wei)
forge test --contracts src/test/2026-09/GDC_exp.sol -vvv
Contract
20260909 EtherFiAtomicQueue - missing solver access control drains victim allowances
Lost: ~15.45 ETH (9 real victims' standing liquidETH allowances drained)
forge test --contracts src/test/2026-09/EtherFiAtomicQueue_exp.sol -vvv
Contract
20260909 OMNI404 - ERC-404 dual ID/amount transfer interpretation drains pool WETH
Lost: 2.427 WETH (run() leg reproduced here; ~3.02 ETH across the full 4-tx block)
forge test --contracts src/test/2026-09/OMNI404_exp.sol -vvv
Contract
20260909 UnifiProtocol - unregistered caller-supplied pool trusted for reward eligibility and math
Lost: ~5.86 BNB (treasury still holds ~9.17 BNB, contract unpaused — bug remains re-exploitable)
forge test --contracts src/test/2026-09/UnifiProtocol_exp.sol -vvv
Contract
20260909 BeatXswap - slot0 spot-price oracle with no TWAP guard drains vesting BTX reserves
Lost: ~$63.7K USDT net profit (2,984,557 BTX / ~$77.5K drained from two vesting reserves)
forge test --contracts src/test/2026-09/BeatXswap_exp.sol -vvv
Contract
20260909 EnsoFinance - short-window Uniswap V3 TWAP oracle enables ~9x overvalued strategy deposit
Lost: ~5.6 ETH (5.277 ETH realized in this PoC after slippage selling looted UNI/AAVE/MKR back to WETH)
forge test --contracts src/test/2026-09/EnsoFinance_exp.sol -vvv
Contract
20260909 ZentraFinance - aToken burn safeguard clamps to zero, repayWithATokens clears debt without burning
Lost: 140,000 ctUSD + 30 USDC.e ($143K)
forge test --contracts src/test/2026-09/ZentraFinance_exp.sol -vvv
Contract
20260908 OrderFactory - missing access control on createOrderForBuyer drains buyer accounts
Lost: ~20.247 ETH this tx (5 buyers drained; reported incident total ~24.7 ETH)
forge test --contracts src/test/2026-09/OrderFactory_exp.sol -vvv
Contract
20260907 RouterDrain - permissionless swap entry lets a fake V3 pool abuse router allowances
Lost: ~62.28 WBNB across 29 victims (3 reconstructed here: OCEAN, Kandura, SATURN)
forge test --contracts src/test/2026-09/RouterDrain_exp.sol -vvv
Contract
20260907 CozyFinance - unverified UMA Optimistic Oracle trigger enables unbacked protection-token redemption
Lost: 160,776 USDC.e ($160K)
forge test --contracts src/test/2026-09/CozyFinance_exp.sol -vvv
Contract
20260905 DHC - repeatable claim due to missing claimed-flag
Lost: ~$71.8K USDT
forge test --contracts src/test/2026-09/DHC_exp.sol -vvv
Contract
20260905 Reddio - cross-share-class balance double-count via permissionless registerErc20
Lost: ~9.25 ETH
forge test --contracts src/test/2026-09/Reddio_exp.sol -vvv
Contract
20260905 SecuredFi - same-block self-trade manipulates getMarketUnitPrice to fabricate collateral
Lost: 0.9 WBTC ($72K single-drain; ~$104K across all actors exploiting the same public bug)
forge test --contracts src/test/2026-09/SecuredFi_exp.sol -vvv
Contract
20260903 NotionalFinance - ERC1155 fCash mint overflow drains escrow
Lost: ~69,257.37 DAI + 1,658,524.86 USDC ($1.73M)
forge test --contracts src/test/2026-09/NotionalFinance_exp.sol -vvv
Contract
20260901 ReflexerGEB - Shared GebProxyActions library registered as SAFE owner
Lost: 5.9436 ETH ($14K, drained from 4 SAFEs in one tx: IDs 3, 5, 8, 18)
forge test --contracts src/test/2026-08/ReflexerGEB_exp.sol -vvv
Contract
20260831 FloatProtocol - Uniswap V3 spot price manipulation of Hypervisor LP shares
Lost: ~$28,000 (10.71 ETH)
forge test --contracts src/test/2026-08/FloatProtocol_exp.sol -vvv
Contract
20260831 BalancerV1BPool - joinswapPoolAmountOut rounding drain across 5 pools
Lost: $110,839 for this DPI/USDC/WETH/WBTC pool ($234K aggregate across all 5 vulnerable pools)
forge test --contracts src/test/2026-08/BalancerV1BPool_exp.sol -vvv
Contract
20260828 AjnaFinance - liquidation accounting manipulation via self-controlled auction
Lost: ~$124.8K for this cbETH pool (1 of 7 pools hit by the same bug the same day, ~$775K aggregate)
forge test --contracts src/test/2026-08/AjnaFinance_exp.sol -vvv
Contract
20260827 CashCowCoin - privileged burn + premature sync() drains PancakeSwap pair
Lost: 165.47 WBNB ($117.4K)
forge test --contracts src/test/2026-08/CashCowCoin_exp.sol --evm-version cancun -vvv
Contract
20260826 EnjinCryptoItems - unprotected registry reinitialization, manager takeover
Lost: 5,231,353 ENJ (~$142K)
forge test --contracts src/test/2026-08/EnjinCryptoItems_exp.sol -vvv
Contract
20260825 FHToken - sell-tax reserve mismatch via premature sync()
Lost: 19,999.018106552928530404 USDT (~$20K)
forge test --contracts src/test/2026-08/FHToken_exp.sol --evm-version cancun -vvv
Contract
20260823 ArrakisGUNI - Uniswap V3 spot-price manipulation of vault mint/burn
Lost: ~2.9414 ETH net attacker surplus (Arrakis V1 / G-UNI ENS-WETH vault)
forge test --contracts src/test/2026-08/ArrakisGUNI_exp.sol -vvv
Contract
20260823 TermFinance - Governance capture via thinly-wrapped Aragon voting power
Lost: 2,841.743535791961701401 WETH (attacker net gain, ETH meta-vault)
forge test --contracts src/test/2026-08/TermFinance_exp.sol -vvv
Contract
20260822 SandboxOFT - LayerZero delegate hijack via approveAndCall
Lost: 10,000,000 SAND minted unbacked (~$517,170 face value, one of 400+ repeated txs in an ongoing campaign)
forge test --contracts src/test/2026-08/SandboxOFT_exp.sol -vvv
Contract
20260819 AllbridgeCCTP - Phantom deposit via unverified message attestation
Lost: ~189,751.554381 USDC
forge test --contracts src/test/2026-08/AllbridgeCCTP_exp.sol --evm-version cancun -vvv
Contract
20260809 USM - defund() price split-invariance rounding exploit
Lost: ~70.83 ETH
forge test --contracts src/test/2026-08/USM_exp.sol -vvv
Contract
20260806 UnistreetLaunchpad - arbitrary call injection via unvalidated launch forwarding
Lost: ~17,743.91 USDC + 0.0072 WETH ($17.75K)
forge test --contracts src/test/2026-08/UnistreetLaunchpad_exp.sol -vvv
Contract
20260805 StrongBlock - governance takeover of an abandoned Governor
Lost: 32,695.761681 STRONG + 383,447.167299 STRNGR (~$72K)
forge test --contracts src/test/2026-08/StrongBlock_exp.sol -vvv
Contract
20260803 AIC - pair skim / reserve-mismatch exploit, flash-swap leveraged
Lost: 32.36 BNB ($21.5K)
forge test --contracts src/test/2026-08/AIC_exp.sol -vvv
Contract
20260802 MOKE - settle() tx.origin check lets any EOA latch a manipulated MOKE/USDT price, then claim() mints inflated MOKE against it
Lost: ~1546.54 BNB (~41.68M MOKE over-minted)
forge test --contracts src/test/2026-10/MOKE_exp.sol --evm-version prague -vvv
Contract
20260728 LULA - Rental reward claims call LULA.recycle(), which moves up to a third of the pair's LULA to Rental and sync()s with no USDT leaving, so after a buy routed to the fee-excluded owner bypasses buyEnabled, the claims drain the pair's LULA reserve and 4,999 LULA buys back the pushed USDT plus the pool's liquidity
Lost: ~578.3K USDT
forge test --contracts src/test/2026-07/LULA_exp.sol --evm-version cancun -vvv
Contract
Link reference
20260716 CrowdRingCircle - sell-destroy path burns CRC out of the pair on any non-exempt sell, collapsing the reserve so a follow-up swap drains the pool's USDT
Lost: ~201.36K USDT
forge test --contracts src/test/2026-10/CrowdRingCircle_exp.sol -vvv
Contract
20260716 PerpetualProtocol - v2 (Curie) unguarded OrderBook funding-growth update lets anyone poison cached funding, draining the Vault
Lost: ~3,062.21 USDC
forge test --contracts src/test/2026-10/PerpetualProtocol_exp.sol --evm-version cancun -vvv
Contract
20260706 SummerFi - FleetCommander NAV Inflation via Depegged xUSD
Lost: ~$6M (DAI + LVUSDC shares)
forge test --contracts ./src/test/2026-07/SummerFi_exp.sol -vvv --evm-version cancun
Contract
Link reference
https://etherscan.io/tx/0x0db528c44f23fc7fa4544684a2fab81096450a14aae8bc89f42cd0592d43da12
20260701 edel-xstock - Price Oracle Manipulation
Lost: 204,215.57 USDC
forge test --contracts ./src/test/2026-07/edel-xstock_exp.sol -vvv
Contract
Link reference
https://x.com/TenArmorAlert/status/2072130807356129726
20260629 Vault4626 - Business Logic Flaw
Lost: 13.53 WETH
forge test --contracts ./src/test/2026-06/Vault4626_exp.sol --evm-version shanghai -vvv
Contract
Link reference
https://x.com/DefimonAlerts/status/2071495744071086510
20260628 AIDC - Business Logic Flaw
Lost: 220.13 WBNB
forge test --contracts ./src/test/2026-06/AIDC_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://x.com/TenArmorAlert/status/2071415914948685892
20260627 CookFinanceIssuance - Price Oracle Manipulation
Lost: ~$50K
forge test --contracts ./src/test/2026-06/CookFinanceIssuance_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://x.com/DefimonAlerts/status/2071497001443770684
20260625 LixirPermitDrain - Broken Signature Verification
Lost: 2.60 ETH, 4,477.72 USDC, 3,609.95 USDT, 24,182.56 LIX
forge test --contracts ./src/test/2026-06/LixirPermitDrain_exp.sol -vvv
Contract
Link reference
https://x.com/DefimonAlerts/status/2070362661691207935
20260625 OceanBPoolSideStaking - BPool single-sided join/exit math with SideStaking gulp accounting
Lost: 127.86K mOCEAN
forge test --contracts ./src/test/2026-06/OceanBPoolSideStaking_exp.sol -vvv
Contract
Link reference
http://x.com/defimonalerts/status/2070362661540286735
20260624 DLMC - Reserve-derived livePrice manipulation
Lost: 222,560.22 USDT
forge test --contracts ./src/test/2026-06/DLMC_exp.sol -vvv --evm-version cancun
Contract
Link reference
https://x.com/TenArmorAlert/status/2069957542109958498
20260623 RoyalRoyalties - Zero-amount ERC1155 batch transfer inflated Royal LDA tier balance
Lost: 261,162.93 USDC
forge test --contracts ./src/test/2026-06/RoyalRoyalties_exp.sol -vvv
Contract
Link reference
https://x.com/TenArmorAlert/status/2069596801725002121
20260622 Aztec Escape Hatch - proof_id Accounting Bypass (whitehat reproduction)
Lost: N/A (purely educational; worst-case impact would have been ~$2M, matching the separate vulnerability that actually drained the contracts)
forge test --contracts src/test/2026-06/AztecEscapeHatch_exp2.sol -vvv
Contract
Link reference
https://github.com/AztecProtocol/aztec-2.0
https://x.com/ivanbogatyy/status/2069159603942596830
20260622 ATM - LP Token Burn
Lost: 1,603.99 WBNB
forge test --contracts ./src/test/2026-06/ATM_LP_Burn_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://x.com/TenArmorAlert/status/2068993748936151209
20260620 OLPC - OLPC pair reserve manipulation
Lost: 1,115,903.66 USDT
forge test --contracts ./src/test/2026-06/OLPC_exp.sol --evm-version shanghai -vvv
Contract
Link reference
https://x.com/exvulsec/status/2068308334512365924
20260618 JB - JB helper repeated cycle drains JB/USDT pair
Lost: 49,958.06 USDT
forge test --contracts ./src/test/2026-06/JB_exp.sol -vvv --evm-version cancun
Contract
Link reference
https://x.com/audit_911/status/2067943961327763788
20260617 Aztec V1 - escapeHatch Proof-Forgery (permissionless RollupProcessor exit)
Lost: ~$2.2M (1158 ETH + 150,000 DAI + 0.4696 renBTC)
forge test --contracts src/test/2026-06/AztecEscapeHatch_exp.sol -vvv
Contract
20260617 WHALE - Transfer Accounting Reserve Desync
Lost: 3,460.41 USDT
forge test --contracts ./src/test/2026-06/WHALE_exp.sol -vvv --evm-version cancun
Contract
Link reference
https://x.com/audit_911/status/2067451654694412720
20260617 LBP - LBP balanceOf reward accounting
Lost: 610.56 BNB
forge test --contracts ./src/test/2026-06/LBP_exp.sol -vvv --evm-version cancun
Contract
Link reference
https://x.com/DefimonAlerts/status/2067329401977532429
20260616 DIP - Fee-on-Transfer Reserve Manipulation
Lost: 111,097.59 USDC
forge test --contracts ./src/test/2026-06/DIP_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://x.com/TenArmorAlert/status/2067059314519417163
20260615 Thetanuts - Index vault component-share accounting flaw
Lost: 105471.50 USDC
forge test --contracts ./src/test/2026-06/Thetanuts_exp.sol -vvv
Contract
Link reference
https://x.com/PeckShieldAlert/status/2066540451126190312
20260614 Aztec Connect - numRealTxs Proof/Settlement Mismatch (permissionless RollupProcessorV3)
Lost: ~$2.19M (this PoC reproduces the 908.99 ETH leg)
forge test --contracts src/test/2026-06/AztecConnect_exp.sol -vvv
Contract
Link reference
https://www.cryptotimes.io/2026/06/15/aztec-exploit-drains-2-19m-from-dormant-privacy-protocol/
20260609 TOPBPool - Governance-controlled token mint and Balancer pool drain
Lost: 944.20 WETH
forge test --contracts ./src/test/2026-06/TOPBPool_exp.sol -vvv
Contract
Link reference
https://x.com/DefimonAlerts/status/2064616112822583505
20260609 NovaBox - Constructor Dividend Checkpoint Bypass
Lost: 56.73 ETH
forge test --contracts ./src/test/2026-06/NovaBox_exp.sol --evm-version prague -vvv
Contract
Link reference
https://x.com/DefimonAlerts/status/2064616360466919793
20260607 AmbientCrocSwapDex - Native surplus accounting flaw
Lost: 67.85 ETH
forge test --contracts ./src/test/2026-06/AmbientCrocSwapDex_exp.sol -vvv
Contract
Link reference
https://x.com/TenArmorAlert/status/2063816231023427861
20260606 BOSS - BOSS helper mint/burn and transfer-tax pool skew
Lost: 10,207.54 USDT
forge test --contracts ./src/test/2026-06/BOSS_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://x.com/audit_911/status/2063819348305985748
20260605 DTXT - Liquidity Misclassification Fee Bypass
Lost: 35,041.11 USDT
forge test --contracts ./src/test/2026-06/DTXT_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://x.com/audit_911/status/2063793931138347015
20260605 AISOTHPresale - Fixed-price presale arbitrage
Lost: 30,314.76 USDT
forge test --contracts ./src/test/2026-06/AISOTHPresale_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://x.com/audit_911/status/2063565495073415618
20260604 BYToken - Permissionless triggerAutoBurn Reserve Manipulation
Lost: ~$87,402 (146.60 WBNB)
forge test --contracts src/test/2026-06/BYToken_exp.sol -vvv
Contract
Link reference
20260604 ATM Token - Hidden transferFrom Auto-Swap Drain
Lost: ~$243,543 USDT
forge test --contracts src/test/2026-06/ATM_exp.sol -vvv
Contract
Link reference
20260530 AROS - Signature Replay
Lost: ~$295K
forge test --contracts src/test/2026-05/AROS_exp.sol -vvv --evm-version prague
Contract
Link reference
https://bscscan.com/tx/0xe89fe640ec5241edfca7d8dcae77a0a4270dee15e4bbd043fc60e393aabf41e1 https://x.com/TenArmorAlert/status/2061289921990570349
20260529 YSDAO - Price Manipulation and Tax Bypass
Lost: ~19.49K USDT
forge test --contracts src/test/2026-05/YSDAO_exp.sol -vvv
Contract
Link reference
https://bscscan.com/tx/0x91f26d96373bbec6a6a8517c7be995a739d65f20fed589d53bc47d8140f91907
20260528 LegendaryMoneyMonNft - ecrecover address(0) Signature Bypass
Lost: ~$85.5K USD (85,519 USDT)
forge test --contracts src/test/2026-05/LegendaryMoneyMonNft_exp.sol -vvv
Contract
Link reference
https://x.com/SlowMist_Team/status/2060205558687486441
20260528 DxSale - Ownership Override Attack
Lost: ~7.3M USD
forge test --contracts src/test/2026-05/DxSale_exp.sol -vvv
Contract
Link reference
https://crypto.news/dxsale-exploit-drains-7-3m-in-bnb-through-hidden-contract-backdoor/ https://x.com/Tahax1/status/1928169316736651568 https://x.com/CoinsultAudits/status/1928203831996297670
20260527 Joe Agent - Reentrancy in removeLiquidityViaContract
Lost: ~$45K USD (62.5 BNB + ~1.196M JOE)
forge test --contracts src/test/2026-05/JoeAgent_exp.sol -vvv
Contract
Link reference
https://x.com/SlowMist_Team/status/2059887450663551352
20260526 SKP Token - Owner Backdoor LP Burn + Price Manipulation
Lost: ~$212K USD
forge test --contracts src/test/2026-05/SKP_exp.sol -vvv
Contract
Link reference
20260526 SKP Token - Deliberately Engineered Drain (Insider Exploit / Rug Pull)
Lost ~$212,195 USDT
Classification: Premeditated insider exploit — NOT a conventional external hack.
forge test --contracts src/test/2026-05/SKP_exp2.sol -vvv
Contract
Link reference
- https://bscscan.com/tx/0xbc01ea37bd2ff8f6aa6afcfbe0406114ff27a01e9aa56102bfa4ad8a0c2f25ee
- https://bscscan.com/tx/0xadf1b6ff02a917043c816bc8bd1ed67038d64a19d06544b09ceeb872518fda37
- https://www.bitget.com/amp/news/detail/12560605230076
20260525 SquidRouterModule - Missing caller check
Lost: 0.25 WBTC + 0.29 wTAO + 0.02 WETH
FOUNDRY_EVM_VERSION=cancun forge test --contracts ./src/test/2026-05/SquidRouterModule_exp.sol -vvv
Contract
Link reference
https://t.me/defimon_alerts/3045
20260525 New Market Trading - SquidRouterModule Missing Caller Check
Lost: ~$3.98M USD
FOUNDRY_EVM_VERSION=cancun forge test --contracts src/test/2026-05/NewMarketTrading_exp.sol --match-contract NewMarketTradingExploit -vv
Contract
Link reference
https://rekt.news/newmarkettrading-rekt
20260525 WUSD.fi - _englove Sybil Incentive Abuse
Lost: ~$200K USD (GLOVE emissions + LP drain)
forge test --contracts src/test/2026-05/WUSD_exp.sol -vvv
Contract
Link reference
https://x.com/exvulsec/status/2058803971947385330
20260522 FractalProtocol - Business Logic Flaw
Lost: ~$13.7K
forge test --contracts src/test/2026-05/FractalProtocol_exp.sol -vvv
Contract
Link reference
https://arbiscan.io/tx/0x20db78913a51c3b3aece860ea142c240f3f8fa3b5bbf533a3d1d48eed857e10f https://x.com/DefimonAlerts/status/2058619391776878967
20260521 MureDistribution - Signature Verification Bypass
Lost: ~5.45 ETH
forge test --contracts src/test/2026-05/MureDistribution_exp.sol -vvv
Contract
Link reference
https://etherscan.io/tx/0xb83040361a0ec72fa2d06ad69493226518a5f8b5d96c19b400626248f9c5b798 https://x.com/DefimonAlerts/status/2058211424761942226
20260520 MAPProtocol - Arbitrary Mint
Lost: ~$180K
forge test --contracts src/test/2026-05/MAPProtocol_exp.sol -vvv
Contract
Link reference
https://etherscan.io/tx/0x31e56b4737649e0acdb0ebb4eca44d16aeca25f60c022cbde85f092bde27664a https://x.com/MapProtocol/status/2059587998409490510
20260519 ElevateFi - Reserve Price Manipulation
Lost: ~16,000 USD
forge test --contracts ./src/test/2026-05/ElevateFi_exp.sol -vvv --evm-version cancun
Contract
Link reference
https://t.me/defimon_alerts/3040
20260518 TesseraSwap - Callback Repayment Price Spread
Lost: ~$20K
forge test --contracts ./src/test/2026-05/TesseraSwap_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://t.me/defimon_alerts/3038
20260517 VerusBridge - Insufficient Validation
Lost: ~$11.58M
forge test --contracts src/test/2026-05/VerusBridge_exp.sol -vvv
Contract
Link reference
https://etherscan.io/tx/0x6990f01720f57fc515d0e976a0c4f8157e0a9529194c4c15d190e98d087eb321 https://x.com/VerusCoin/status/2057465214975492358
20260517 SEAToken - Business Logic Flaw
Lost: ~$110K
forge test --contracts src/test/2026-05/SEAToken_exp.sol -vvv
Contract
Link reference
https://arbiscan.io/tx/0x001cb16e17c4c5a5c4d02423c9e9b2f2b11ab6b2a1baf2ba53b8fcaf06167716 https://anomly.rs/metasea-redeemposition-distributor-drain-arb-2026-05-17
20260515 AdsharesBridge - Insufficient Validation
Lost: ~$628K
forge test --contracts src/test/2026-05/AdsharesBridge_exp.sol -vvv
Contract
Link reference
https://etherscan.io/tx/0x8844b4ec371c4b13d7fac701b5d546a7c2fba12621a9596dd14b662b14408789 https://etherscan.io/tx/0xfba82bb34515d7aefbf0c89582b71d915ec8861c96babaafdc882743dbc23509 https://etherscan.io/tx/0xa3476575183204b4a662dd6ee56f6499d806e4f41ce83d98366752d31e9e9ca3 https://x.com/DefimonAlerts/status/2055751467579936770
20260512 SQTokenStaking - Access Control
Lost: ~$346.1K
forge test --contracts src/test/2026-05/SQTokenStaking_exp.sol -vvv --evm-version prague
Contract
Link reference
https://bscscan.com/tx/0x1bae633eda9b3d98999ea116bc403712eaa07093ec32bd6d559085cc4607f5b8 https://x.com/Defi_Nerd_sec/status/2054425936746148148
20260511 INKFinance - Business Logic Flaw
Lost: ~$140K
forge test --contracts src/test/2026-05/INKFinance_exp.sol -vvv
Contract
Link reference
https://polygonscan.com/tx/0xb469a24ec737be16fe41367a7b5b315c7f03b4e0ff3af50b3a2db03b3066b982 https://www.cryptotimes.io/2026/05/11/ink-finance-exploited-on-polygon-140k-usdt-drained-in-flash-loan-attack/
20260511 HumaFinance - Credit Approval Bypass
Lost: ~$101K (82,315 USDC + 19,074 USDC.e)
forge test --contracts src/test/2026-05/HumaCreditApprovalBypass_exp.sol -vv
Contract
HumaCreditApprovalBypass_exp.sol
Link reference
https://www.cryptotimes.io/2026/05/11/huma-finance-v1-exploit-on-polygon-drains-101k-in-usdc/
20260510 Renegade - Uninitialized Proxy
Lost: ~$209K
forge test --contracts src/test/2026-05/Renegade_exp.sol -vvv
Contract
Link reference
https://arbiscan.io/tx/0x0e494685ace16d372066c5b4db959b58ebac6d88166c2d9d618e0e421dc0c77e https://x.com/renegade_fi/status/2053531772634427599 https://x.com/DefimonAlerts/status/2053538325969977801
20260507 TrustedVolumes - Signature Replay
Lost: ~$5.87M
forge test --contracts src/test/2026-05/TrustedVolumes_exp.sol --match-contract TrustedVolumesExploit -vv
Contract
Link reference
https://rekt.news/trustedvolumes-rekt https://www.darknavy.org/web3/exploits/trustedvolumes-rfq-proxy-drain/ https://blog.verichains.io/p/trustedvolumes-exploit-analysis
20260505 Ekubo - Business Logic Flaw
Lost: ~$1.4M
forge test --contracts src/test/2026-05/Ekubo_exp.sol -vvv
Contract
Link reference
https://etherscan.io/tx/0x770bc9a1f7c32cb63a5002b9ceb5c7994cd3af0fc6b2309cb32d3c46f629daa0 https://x.com/EkuboProtocol/status/2051754481465856038 https://x.com/blockaid_/status/2051757787714118125
20260501 SharwaMarginTrading - Hegic collateral spot price manipulation
Lost: 32.85K USDC
forge test --contracts ./src/test/2026-05/SharwaMarginTrading_exp.sol -vvv
Contract
Link reference
https://t.me/defimon_alerts/2975
20260428 RWAVault - Missing ERC4626 allowance check
Lost: 398,655.47 USDC
forge test --contracts ./src/test/2026-04/RWAVault_exp.sol -vvv
Contract
Link reference
https://t.me/defimon_alerts/2958
20260428 JUDAO - JUDAO sell-hook reserve drain
Lost: 205K USDT + 36 BNB
forge test --contracts ./src/test/2026-04/JUDAO_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://t.me/defimon_alerts/2955
20260427 Unverified_a152 - AllowanceTarget approval drain
Lost: 229K USDT
forge test --contracts ./src/test/2026-04/unverified_a152_exp.sol -vvv
Contract
Link reference
https://t.me/defimon_alerts/2987
20260425 SingularityDynaVault - Oracle Misconfiguration / Share Inflation
Lost: 413.13K USDC
forge test --contracts ./src/test/2026-04/SingularityDynaVault_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://x.com/DefimonAlerts/status/2048698708309705069
20260423 GiddyVaultV3 - Incomplete Signature Coverage
Lost: $1.3M
forge test --contracts ./src/test/2026-04/giddyvaultv3_compound_auth_exp.sol -vvv --evm-version cancun
Contract
giddyvaultv3_compound_auth_exp.sol
Link reference
https://x.com/DefimonAlerts/status/2047334517535642024
20260421 KipseliPropAMM - Pricing / Decimals Mismatch
Lost: 0.93 cbBTC
forge test --contracts ./src/test/2026-04/KipseliPropAMM_exp.sol -vvv --evm-version cancun
Contract
Link reference
https://x.com/DefimonAlerts/status/2046873857571934254
20260420 JuiceboxREVLoans - Fake terminal loan source validation bypass
Lost: 21.77 ETH
forge test --contracts ./src/test/2026-04/JuiceboxREVLoans_exp.sol -vvv
Contract
Link reference
https://x.com/DefimonAlerts/status/2046862935650345139
20260420 ThetanutsVaultShareRounding - Vault Share Rounding Manipulation
Lost: 0.15 WBTC
forge test --contracts ./src/test/2026-04/ThetanutsVaultShareRounding_exp.sol -vvv
Contract
ThetanutsVaultShareRounding_exp.sol
Link reference
https://t.me/defimon_alerts/2933
20260419 AaveRebalancerCreditDelegation - Arbitrary External Call / Credit Delegation Abuse
Lost: 6,999.91 WAVAX
forge test --contracts ./src/test/2026-04/AaveRebalancerCreditDelegation_exp.sol -vvv
Contract
AaveRebalancerCreditDelegation_exp.sol
Link reference
https://x.com/DefimonAlerts/status/2046504796463808991
20260415 XLootStaking - Duplicate xLOOT Redemption
Lost: 6.21 ETH
forge test --contracts ./src/test/2026-04/XLootStaking_exp.sol -vvv
Contract
Link reference
https://x.com/DefimonAlerts/status/2044709964091187660
20260414 MONA LisaVault - reward-farming / BurnAddress accounting exploit!
Lost ~60.95K USDT
forge test --contracts src/test/2026-04/MONA_LisaVault_exp.sol -vvv
Contract
Link reference
https://x.com/exvulsec/status/2043928546662592949
20260414 Saturn Protocol - Vulnerability Disclosure
Lost: 0 (Disclosure only; no exploit occurred)
TVL at Risk: ~$35.7M
forge test --contracts src/test/2026-04/SaturnProtocol_exp.sol -vvv --fork-url https://rpc.ankr.com/eth
Contract
Link reference
https://gist.github.com/sgInnora/b70ad98327649ed4ab976a122f45e485
Note: Vendor states SAT-001 (underflow) is mitigated by _validateTotals, and SAT-002 (tolerance compound) is a trusted-role design observation.
20260412 SubQuerySettings - Settings access control
Lost: 218.07M SQT
forge test --contracts ./src/test/2026-04/SubQuerySettings_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://t.me/defimon_alerts/2909
20260407 SquidMulticallAllowanceDrain - Arbitrary Call / Wrong Approval
Lost: 1 ETH
forge test --contracts ./src/test/2026-04/SquidMulticallAllowanceDrain_exp.sol -vvv --evm-version shanghai
Contract
SquidMulticallAllowanceDrain_exp.sol
Link reference
https://x.com/DefimonAlerts/status/2041530294369386806
20260405 PerpPair - Virtual AMM Manipulation
Lost: 165K USDC
forge test --contracts ./src/test/2026-04/PerpPair_exp.sol -vvv --evm-version prague
Contract
Link reference
https://x.com/DefimonAlerts/status/2041070927908126897
20260331 WhalebitOracleManipulation - Algebra spot-price oracle manipulation
Lost: 824K USD
forge test --contracts ./src/test/2026-03/WhalebitOracleManipulation_exp.sol -vvv
Contract
WhalebitOracleManipulation_exp.sol
Link reference
https://x.com/DefimonAlerts/status/2039372077686251787
20260328 VTSwapHook - Pricing Error in UniswapV4 Hook
Lost: 4,507,034.03 vATH + 2,007,935.14 ATH
forge test --contracts ./src/test/2026-03/VTSwapHook_exp.sol -vvv --evm-version cancun
Contract
Link reference
https://x.com/DefimonAlerts/status/2038647146098954283
20260327 EST Token - Incorrect Token Burn Mechanism
Lost: 150.2 WBNB
forge test --contracts src/test/2026-03/EST_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://bscscan.com/address/0xD4524Be41cd452576aB9FF7b68a0b89aF8498a91
20260324 XocolatlLiquidator - Access Control / Input Validation
Lost: 3.25 cbETH and 0.22 WETH
forge test --contracts ./src/test/2026-03/XocolatlLiquidator_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://t.me/defimon_alerts/2834
20260324 Univ3CollateralToken - Logic Error
Lost: 57K USD
forge test --contracts ./src/test/2026-03/Univ3CollateralToken_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://x.com/DefimonAlerts/status/2036449500512891317
20260323 BCE - Deflationary Token Logic Error
Lost: ~800,000 USDT
forge test --contracts ./src/test/2026-03/bce_exp.sol -vvv --evm-version cancun
Contract
Link reference
https://t.me/defimon_alerts/2814
20260319 ATMBlindBox - Weak Randomness / Predictable RNG
Lost: 99K USD
forge test --contracts ./src/test/2026-03/ATMBlindBox_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://t.me/defimon_alerts/2808
20260319 Revamp - Reward Accounting Drain
Lost: 2.99 BNB
forge test --contracts ./src/test/2026-03/Revamp_exp.sol -vvv --evm-version cancun
Contract
Link reference
https://x.com/DefimonAlerts/status/2034532544239088053
20260317 dTRINITY dLEND - Empty-market liquidityIndex inflation
Lost: ~257K USD
forge test --contracts ./src/test/2026-03/dTRINITYdLEND_exp.sol -vvv
Contract
Link reference
https://blog.verichains.io/p/deep-dive-into-the-dtribity-cbbtc
20260316 unverified - CheckoutPool Old BOC Missing Access Control
Lost: 85,730 USDC
forge test --contracts ./src/test/2026-03/unverified_1304_exp.sol -vvv --evm-version cancun
Contract
Link reference
https://x.com/DefimonAlerts/status/2034532547191820390
20260315 Venus THE - BorrowBehalf + Donation Attack
Lost: 913,858.263360521396654198 CAKE + 1,972.530910582753621682 WBNB
forge test --contracts src/test/2026-03/Venus_THE_exp.sol --match-test testTraceDrivenPoC -vvv
Contract
Link reference
https://bscscan.com/tx/0x4f477e941c12bbf32a58dc12db7bb0cb4d31d41ff25b2457e6af3c15d7f5663f
20260315 StakeOnMe - Owner-privileged JAKE burn reserve drain
Lost: 0.28 ETH
forge test --contracts ./src/test/2026-03/unverified_237d_exp.sol -vvv
Contract
Link reference
https://x.com/DefimonAlerts/status/2034532549905580417
20260310 AlkemiEarn - Business Logic
Lost: 43.45 ETH
forge test --contracts ./src/test/2026-03/AlkemiEarn_exp.sol -vvv
Contract
Link reference
https://x.com/blockaid_/status/2031351881029546194
20260302 Curve LlamaLend - Share price manipulation
Lost: ~240,000 US$
forge test -vvv --contracts ./src/test/2026-03/Curve_LlamaLend_exp.sol
Contract
Link reference
https://x.com/yieldsandmore/status/2028368378457362629
20260222 LAXO Token - Incorrect Burn Logic
Lost: ~137,000 US$
forge test src/test/2026-02/LAXO_Token_exp.sol -vvv
Contract
Link reference
https://x.com/CertiKAlert/status/2027317095420072317
20260216 XDKRecycle - XDK recycle reserve manipulation
Lost: 6.84 WBNB
forge test --contracts ./src/test/2026-02/XDKRecycle_exp.sol -vvv --evm-version shanghai
Contract
Link reference
https://x.com/DefimonAlerts/status/2024163654631882916
20260215 Moonwell - Faulty Oracle
Lost: 1.78M USD
forge test --contracts ./src/test/2026-02/Moonwell_exp.sol -vvv
Contract
Link reference
https://forum.moonwell.fi/t/mip-x43-cbeth-oracle-incident-summary/2068
https://forum.moonwell.fi/t/recovery-plan-cbeth-incident-and-moonwell-apollo-onboarding/2084
https://x.com/pashov/status/2023872510077616223
https://x.com/moo9000/status/2024040101982990534
20260120 SynapLogic - Business Logic Flaw
NOTICE: SynapLogic is totally a cheat contract, with backdoors, vulnerabilities and rug pulls.
Lost: 27.6 ETH & 3450 USDC
forge test -vvv --contracts ./src/test/2026-01/SynapLogic_exp.sol
Contract
Link reference
https://x.com/TenArmorAlert/status/2013432861366292520?s=20
https://x.com/hklst4r/status/2013440353844461979?s=20
https://x.com/CertiKAlert/status/2013440963851755610?s=20
https://x.com/nn0b0dyyy/status/2013445844394279260?s=20
20260120 Makina - Price Oracle Manipulation
Lost: 5.1M USD
forge test -vvv --contracts ./src/test/2026-01/makina_exp.sol --evm-version cancun
# MUST use evm >= cancun
Contract
Link reference
https://x.com/nn0b0dyyy/status/2013472538832314630
https://x.com/TenArmorAlert/status/2013460083078836342
https://x.com/CertiKAlert/status/2013473512116363734
20260112 MTToken - Incorrect Fee Logic
Lost: 37K USD
forge test -vvv --contracts ./src/test/2026-01/MTToken_exp.sol
Contract
Link reference
https://x.com/TenArmorAlert/status/2010630024274010460?s=20
https://x.com/nn0b0dyyy/status/2010638145155661942?s=20
20260110 FutureSwap - Unit Mismatch
Lost: 433K USD
forge test -vvv --contracts ./src/test/2026-01/futureswap_exp.sol
Contract
Link reference
https://x.com/nn0b0dyyy/status/2009922304927731717?s=20
20260109 Truebit - OverFlow
Lost: 8540ETH
forge test --contracts ./src/test/2026-01/Truebit_exp.sol -vvv
Contract
Link reference
https://www.certik.com/zh-CN/resources/blog/truebit-incident-analysis
20260101 PRXVT - Bussiness Logic Flaw
Lost: 32.8 ETH
forge test --contracts ./src/test/2026-01/PRXVT_exp.sol -vvv --block-gas-limit 60000000 # use gas limit control iterations
Contract
Link reference
https://x.com/CertiKAlert/status/2006685174587605315
View Gas Reports
Foundry also has the ability to report the gas used per function call which mimics the behavior of hardhat-gas-reporter. Generally speaking if gas costs per function call is very high, then the likelihood of its success is reduced. Gas optimization is an important activity done by smart contract developers.
Every poc in this repository can produce a gas report like this:
forge test --gas-report --contracts <contract> -vvv
For Example: Let us find out the gas used in the Audius poc
Execution
forge test --gas-report --contracts ./src/test/Audius.exp.sol -vvv
Demo

Bug Reproduce
Moved to DeFiVulnLabs
FlashLoan Testing
Moved to DeFiLabs
License
This project is licensed under the Apache License 2.0.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,788 starspublic-apis/public-apis
A collective list of free APIs
497,010 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
440,909 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,144 stars