Obedient Lava Monkey
Medium
After a partial liquidation in an isolated reserve, the system does not properly adjust the isolation mode debt tracking to reflect the reduced debt, leading to potential breaches of the debt ceiling in future operations.
In LiquidationLogic.sol
(within executeLiquidationCall
), the function IsolationModeLogic.updateIsolatedDebtIfIsolated is called only after the liquidation is complete, but it does not accurately reflect the reduced actualDebtToLiquidate
during partial liquidations. The isolationModeTotalDebt
remains unchanged or improperly updated, causing inaccuracies in debt ceiling enforcement.
- A reserve is configured as isolated with an active debt ceiling (
reserveConfiguration.getIsolated()
istrue
). - The user’s position is partially liquidated (
actualDebtToLiquidate < userReserveDebt
). IsolationModeLogic.updateIsolatedDebtIfIsolated
fails to properly adjust the reserve’sisolationModeTotalDebt
.
None (assumes no external dependencies on this logic).
- A user with an isolated reserve is partially liquidated.
- The protocol does not properly adjust the
isolationModeTotalDebt
for the isolated reserve after the partial liquidation. - Future borrowing or liquidations proceed, assuming the outdated
isolationModeTotalDebt
. - The debt ceiling is unintentionally exceeded due to stale tracking.
The protocol’s isolation mode guarantees are broken, potentially leading to over-leverage within isolated reserves. This could expose the entire protocol to systemic risks that isolation mode was designed to contain.
Ensure IsolationModeLogic.updateIsolatedDebtIfIsolated
accurately subtracts actualDebtToLiquidate
from the isolationModeTotalDebt
during partial liquidations.