SSSwap

First Flight #41
Beginner FriendlyRust
100 EXP
View results
Submission Details
Impact: medium
Likelihood: medium
Invalid

Missing Minimum LP Token Redemption Threshold in `remove_liquidity`

Description

The remove_liquidity instruction includes a check to prevent zero LP token redemption:

require!(lpt_to_redeem > 0, AmmError::NoZeroRedemption);

However, it does not enforce a minimum LP token amount threshold, which allows users to redeem extremely small (“dust”) amounts of LP tokens.

Impact

  • Dust Exploit Risk: An attacker or bot could repeatedly redeem very small LP token amounts in high-frequency patterns, causing unnecessary computation and potential state bloat.

  • Rounding Errors: Tiny redemptions may result in inconsistent token return amounts due to precision or rounding issues.

  • Gas & Compute Waste: Facilitates low-impact but costly transactions that degrade performance over time.

Recommendation

Enforce a reasonable minimum threshold for LP token redemptions to prevent dust-based abuse. For example:

const MIN_LP_REDEMPTION: u64 = 1_000; // or a context-aware threshold
require!(lpt_to_redeem >= MIN_LP_REDEMPTION, AmmError::DustRedemptionNotAllowed);

This ensures redemptions are economically meaningful and avoids unnecessary micro-transactions.

Updates

Lead Judging Commences

0xtimefliez Lead Judge 4 days ago
Submission Judgement Published
Invalidated
Reason: Design choice

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.