The addLiquidity() and _addLiquidity() functions do not validate the _longRecipient and _shortRecipient addresses to ensure they are not the zero address (address(0)) or they are equal or right. This oversight could lead to a scenario where user liquidity remains permanently locked in the contract.
The current implementation lacks explicit checks to validate _longRecipient and _shortRecipient addresses before proceeding with the liquidity addition operation.
And while _removeLiquidity function of the AaveDIVAWrapperCore.sol the tokens are transferedFrom the position address to this contract which will leads to liquidity stuck in this.
The calls to the transferFrom() function will fail if either _shortTokenContract or _longTokenContract is set to address(0) or uncontrolled address.
The function flow may revert prematurely, and user liquidity will remain stuck, potentially creating a loss of user funds and bad user experience.
If either _longRecipient or _shortRecipient is set to the zero address or other address which is unctrollable by the user , the corresponding liquidity tokens cannot be claimed or transferred, causing the user's liquidity to become irretrievably stuck.
Potential financial loss.
Manual Review
Add proper checks for _longRecipient, _shortRecipient address in the smart contracts.
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.