Exploit_type: Precision Rounding Bug in Tick-Crossing Logic
Loss: ~$55 million stolen from user liquidity pools
Entry_point: computeSwapStep() in SwapMath within the Pool contract
Exploit_vector: Attackers exploited a rounding error in the tick-cross calculation to manipulate liquidity accounting, enabling them to withdraw more assets than they deposited.
Severity: Critical
Attack_steps:
Borrowed large flash loans (e.g., 500 WETH) to prepare the attack.
Executed a swap that crossed price ticks, triggering computeSwapStep() without updating liquidity due to inconsistent rounding.
Minted new LP positions around the manipulated tick boundary to capture inflated virtual liquidity.
Performed reverse swap to exploit the over-accounted liquidity and extract excess tokens.
Repeat across multiple pools and networks, totaling ~$55M in drained funds.