The LendingPool contract depositNFT function allows users under liquidation to continue depositing NFTs, which are automatically seized during liquidation finalization. This creates a deceptive situation where users attempting to improve their position by adding collateral actually lose these additional assets without any chance of recovery.
The depositNFT function lacks liquidation status validation:
During finalizeLiquidation, ALL NFTs are seized:
Attack Path:
User's position becomes unhealthy
Liquidation initiated
User deposits additional NFTs thinking it will help
Grace period expires
Liquidation finalized - all NFTs seized including new deposits
Users lose additional collateral without possibility of recovery
Creates misleading user experience
Potential for significant financial losses
Could be exploited by malicious actors to trick users into depositing more collateral
Manual code review
Add liquidation status check to depositNFT.
Alternative: Allow deposits but track them separately.
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.