Liquidations could be blocked by a malicious user as it could do other liquidations in his name to create  positons token data on his/other users nfts.
Audit: 2024-02-wise-lending-findings
Severity: HIGH

# Lines of code

https://github.com/code-423n4/2024-02-wise-lending/blob/79186b243d8553e66358c05497e5ccfd9488b5e2/contracts/WiseLending.sol#L1250
https://github.com/code-423n4/2024-02-wise-lending/blob/79186b243d8553e66358c05497e5ccfd9488b5e2/contracts/MainHelper.sol#L614


# Vulnerability details

In the event of a rapid market downturn ( e.g USDC de-pegging/UST Luna crash etc... )  liquidations could be blocked by a sophisticated user that have access to MEV infrastructure. Function [liquidatePartiallyFromTokens](https://github.com/code-423n4/2024-02-wise-lending/blob/79186b243d8553e66358c05497e5ccfd9488b5e2/contracts/WiseLending.sol#L1250) is not doing any checks to see if the caller of the function (msg.sender) is the owner of the nft position or it is approved to operate with it. If you are going in the case where there will not be enough tokens to pay the liquidator a position will be created for him. [Currently the  number of positions at this moment is limited to 8 (hardcoded value), but the protocol have stated they will support more then 8](https://github.com/code-423n4/2024-02-wise-lending/blob/79186b243d8553e66358c05497e5ccfd9488b5e2/contracts/MainHelper.sol#L637-L639). Cominbing all this factors, the sophisticated user could frontrun the transactions that want to liquidate him and do liquidations in their name to create more positions until they have 8 positions in [userTokenData](https://github.com/code-423n4/2024-02-wise-lending/blob/79186b243d8553e66358c05497e5ccfd9488b5e2/contracts/MainHelper.sol#L633-L635) and when the liquidations transaction that will liquidate the sophisticated user will take place it will revert with error TooManyTokens() as a new positions can not be added for that liquidator. 

## Impact
Liquidatons could be blocked for a period of time, in case of high market downturn that time is not necessarily to be very long as the protocol does not allow liquidations with a [collateralPercentage bigger then 100%](https://github.com/code-423n4/2024-02-wise-lending/blob/79186b243d8553e66358c05497e5ccfd9488b5e2/contracts/WiseCore.sol#L646-L649) which can result in high accumulating of bad debt rapidly.

## Proof of Concept
To run the following test use the following command. (Attention !, [_maxSharePrice](https://github.com/code-423n4/2024-02-wise-lending/blob/79186b243d8553e66358c05497e5ccfd9488b5e2/contracts/WiseCore.sol#L493-L499)  needs to be turned to true so you could do liquidations that will create share balances for the liquidator, with the actual code you can not do that because of an rounding bug that have been reported in other finding)
```console
forge test -vvvv --match-test "test_finding_sofiticated_user_block_liq_frontrunning" --fork-url mainnet 
```
```solidity
function test_finding_sofiticated_user_block_liq_frontrunning() public {
        _useBlock(NEW_BLOCK);
        _deployNewWiseLending({_mainnetFork: true});
        //For this test to work _maxSharePrice needs to be put on true in _withdrawOrAlloc