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.