In LendingPool
, when a user becomes under liquidation, he has a certain grace period to repay
his debt before his liquidation gets finalized. However, if the contract is paused
, the user can't repay
his debt and the grace period is passing. During LendingPool
pauses, all under liquidation users can lose their grace period to repay
their debt and instantly become liquidated when the contract gets unpaused
.
The liquidation process in LendingPool
has 3 steps:
initiateLiquidation
puts an address with a bad health factor under liquidation. This address now has liquidationGracePeriod
time to repay his debt.
Grace period time is when the address can repay the debt and call closeLiquidation
which will remove the address from being under liquidation.
If grace period has passed, finalizeLiquidation
can be called to complete the process.
However, if the protocol is paused
, the user can neither call repay
or closeLiquidation
as they are protected by the whenNotPaused
modifier:
When the protocol gets paused
, all under liquidation addresses are unable to repay
and closeLiquidation
. However, the grace period keeps passing which means that when the protocol gets unpaused
many users will be able to have their liquidations finalized without the opportunity of closing them, as they are supposed to.
Manual review
Possibly rethink the liquidation process and not allow a grace period for any user. Another solution is to internally keep track of the time the protocol gets paused
and extend the current liquidations by that 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.