When a user swaps without triggering a penalty (e.g., after cooldown expires), the hook returns a fee override of 0%, meaning LPs receive no fees from that swap. This is direct fund theft from liquidity providers.
Normal behavior: Every swap should generate fees for LPs. Instead, fee override logic sets fee to 0 when no penalty applies, stealing LP revenue.
Likelihood: HIGH
Cooldown periods expire regularly (5 blocks in phase 1), swaps after cooldown are common
No special conditions: normal users trigger this every time they swap after waiting
Affects every non-penalized swap in the protocol
Impact: HIGH
LP deposits earn 0% fees on 50%+ of swaps (all non-penalized ones)
Over time, LP returns decrease significantly
If protocol takes 10% APY in fees normally, LPs get ~5% APY due to this bug
Direct fund loss: LPs lose trading fees they're entitled to
This PoC performs a swap after the cooldown period (no penalty), then calls beforeSwap as the PoolManager to read the overridden fee. It asserts the fee value is 0, proving non‑penalized swaps return a zero fee and LPs receive no fees
Only apply fee overrides when a penalty is required. When no penalty applies, return the normal pool fee (or do not set the override flag). This preserves LP fee revenue while keeping penalties intact during restricted phases.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.