This is a problem of centralization risk. Project parties can liquidate user assets by removing tokens from the pledged token list.
The SmartVaultV3 contract calculates the reserve of the vault contract through the euroCollateral function.
If the project party removes the tokens in acceptedTokens through the TokenManagerMock.removeAcceptedToken function, then he will be able to liquidate the funds of all vaults whose native tokens are insufficient to meet the mortgage rate.
##Impact
The liquidation mechanism of this project is different from that of projects such as Compound. The liquidation of projects such as Compound is to give the liquidation profits to the user who initiated the liquidation (can be any user). The liquidation profit after the liquidation of this project is sent to the project party's contract address ISmartVaultManagerV3(manager).protocol(), so if the project party chooses to do evil, it can obtain all profits.
This hidden danger can be solved by setting an unmodifiable token list, but this will sacrifice flexibility and even introduce other problems. No better suggestions came to mind in a short period of time.
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.