Creditor can maliciously burn UniV3 position to permanently lock funds
NonfungiblePositionManager\\n```\\nfunction ownerOf(uint256 tokenId) public view virtual override returns (address) {\\n    return _tokenOwners.get(tokenId, "ERC721: owner query for nonexistent token");\\n}\\n```\\n\\nWhen querying a nonexistent token, ownerOf will revert. Now assuming the NFT is burnt we can see how every method for repayment is now lost.\\nLiquidityManager.sol#L306-L308\\n```\\n        address creditor = underlyingPositionManager.ownerOf(loan.tokenId);\\n        // Increase liquidity and transfer liquidity owner reward\\n        _increaseLiquidity(cache.saleToken, cache.holdToken, loan, amount0, amount1);\\n```\\n\\nIf the user is being liquidated or repaying themselves the above lines are called for each loan. This causes all calls of this nature to revert.\\nLiquidityBorrowingManager.sol#L727-L732\\n```\\n    for (uint256 i; i < loans.length; ) {\\n        LoanInfo memory loan = loans[i];\\n        // Get the owner address of the loan's token ID using the underlyingPositionManager contract.\\n        address creditor = underlyingPositionManager.ownerOf(loan.tokenId);\\n        // Check if the owner of the loan's token ID is equal to the `msg.sender`.\\n        if (creditor == msg.sender) {\\n```\\n\\nThe only other option to recover funds would be for each of the other lenders to call for an emergency withdrawal. The problem is that this pathway will also always revert. It cycles through each loan causing it to query ownerOf() for each token. As we know this reverts. The final result is that once this happens, there is no way possible to close the position.
I would recommend storing each initial creditor when a loan is opened. Add try-catch blocks to each `ownerOf()` call. If the call reverts then use the initial creditor, otherwise use the current owner.
Creditor can maliciously lock all funds
```\\nfunction ownerOf(uint256 tokenId) public view virtual override returns (address) {\\n    return _tokenOwners.get(tokenId, "ERC721: owner query for nonexistent token");\\n}\\n```\\n