Missing NFT Burn Mechanism on Liquidity Removal
QuantAMM Protocol's liquidity removal process has a serious flaw. While withdrawing the liquidity via the removeLiquidityProportional
function, the LP NFTs representing ownership of liquidity are not burned.
This could leave the owners opportunities for unauthorized interactions, protocol manipulation, and potential exploitation.
Here's the implementation of removeLiquidityProportional
function of UpliftOnlyExample
contract:
As seen above, during liquidity removal via removeLiquidityProportional
, the protocol does not implement the corresponding burn mechanism to destroy the NFT associated with the withdrawn liquidity.
This flaw allows users to retain the ownership of NFTs even after liquidity has been fully withdrawn, resulting in invalid representations of liquidity positions. It can lead to potential exploitation on governance mechanisms, claim rewards etc.
The missing NFT burn mechanism has several severe consequences:
Unauthorized Reward Claims: Users may continue to claim liquidity rewards even after withdrawing their liquidity, leading to economic losses for the protocol.
Fraudulent Transfers: Malicious actors can transfer or sell these "ghost" NFTs, deceiving unsuspecting buyers into purchasing invalid tokens.
This vulnerability poses a significant risk to the protocol's security, governance integrity, and economic stability.
Manual Review
Implement an NFT burn mechanism during liquidity removal in removeLiquidityProportional
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.