Users can prevent liquidation of undercollateralized positions by burning EUROs tokens, reducing the vault's minted value and effectively avoiding liquidation
Liquidation is triggered by LiquidationPoolManager.runLiquidation()
which further manager.liquidateVault()
and if vault has more minted value than the deposit collateral it will liquidate the smart vault.
SmartVaults owners can exploit this vulnerability by frontrunning liquidation call and burning EUROs tokens to decrease the vault's minted value, potentially preventing liquidation.
https://github.com/Cyfrin/2023-12-the-standard/blob/main/contracts/SmartVaultV3.sol#L169
just by transferring fees user can adjust their position.
The root cause of problem is that burn does not check if user are in position to burn or not
every vaults can avoid liquidation
Manual
Implement a check in the burn()
function to ensure that users burning tokens are eligible to do so based on their vault's collateralization status
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.