Description: The AMM doesn't permanently lock a minimum amount of liquidity, allowing complete drainage of pools and potential numerical precision issues. The AMM allows liquidity providers to remove 100% of their liquidity from the pool. This creates scenarios where pools can be completely drained, leading to division by zero errors or extremely small reserves that cause precision issues. Most AMM protocols (like Uniswap) permanently lock a small amount of liquidity to prevent these edge cases.
Impact:
Pools can be completely drained, causing subsequent operations to fail
Extremely small reserves can lead to precision issues and unfair pricing
Potential for temporary DoS of specific pools
Proof of Concept: A user who owns 100% of the LP tokens can remove all liquidity:
Recommended Mitigation: Implement a minimum liquidity lock mechanism in the initialize_pool
function:
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.