Bunni V2 Hack: $8M Drained in Precision Liquidity Exploit – Report & Insights

Source: Bunni V2 Exploit Drains $8.3M via Liquidity Flaw - QuillAudits
On September 2, 2025, the Bunni V2 protocol suffered a critical exploit, losing $8.3 million across Ethereum and UniChain networks. This attack targeted a subtle precision bug in BunniHook’s liquidity accounting, allowing the attacker to drain funds from liquidity pools on both chains.
What Happened?
- The attacker exploited BunniHook’s Liquidity Distribution Function (LDF)-a custom liquidity curve built on top of Uniswap V4.
- Bunni V2 uses the LDF to monitor changes after each trade and rebalance liquidity pools accordingly.
- A precision error during these rebalancing calculations caused misestimated token amounts.
- Carefully crafted swaps exploited this bug by repeatedly manipulating LDF thresholds, amplifying rounding errors and inflating the attacker’s token balance.
How the Hack Unfolded
- On Ethereum:
- The attacker took a 3M USDT flash loan from Uniswap V3.
- Executed a series of precise swaps on USDC/USDT pools via Uniswap V4's PoolManager, triggering the faulty LDF logic.
- Miscalculations resulted in a net positive token balance for the attacker within one transaction.
- After compounding these errors, the attacker withdrew the inflated funds and repaid the flash loan, laundering stolen assets into Aave.
- On UniChain:
- A similar approach involved a 2000 WETH flash loan from Morpho.
- Extracted 1366 WETH using the same flaw, then bridged the stolen funds back to Ethereum through the Across protocol.
Root Cause
- The core issue lies in precision errors during swap rebalancing in the Liquidity Distribution Function.
- These small miscalculations didn’t offset but accumulated as a credit, exploited through repeated threshold-crossing trades.
- This flaw led to the systematic over-crediting and withdrawal of tokens from liquidity pools.
Impact & Response
- Total losses: $8.3M+ combined on Ethereum and UniChain.
- Currently, $2.2M remains in the attacker’s wallet, with over 1366 ETH bridged to Ethereum.
- The Bunni team quickly halted withdrawals across all chains to contain damage.
- They also publicly offered the attacker a 10% bounty to encourage responsible disclosure.
Lessons & Recommendations
This incident underscores the risks of adding complex, custom liquidity logic on top of established protocols. Minor precision bugs can lead to major financial loss when exploited at scale.
- Rigorous auditing of custom hooks and liquidity accounting mechanisms is essential.
- Stress-testing for rounding issues and edge-case scenarios helps catch hidden bugs early.
- Protocols should have emergency pause mechanisms ready for swift response.