When the protocol is paused, users cannot close liquidations through closeLiquidation()
, but interest continues to accrue through the usageIndex
. This means users in liquidation state can't exit their position while their debt keeps growing, potentially making their position irreparable when the protocol unpauses.
In LendingPool.sol:
Meanwhile, interest continues to accrue through the usageIndex
update in ReserveLibrary:
The issue sequence:
User's position becomes liquidatable
Protocol gets paused for any reason
User cannot close their liquidation due to whenNotPaused
modifier
Interest continues accruing during the pause
When protocol unpauses, the user's debt has grown substantially
Position might become impossible to save due to accumulated interest
High severity because:
Users lose control over their positions during pause
Debt grows without possibility of repayment
Could lead to forced liquidations after unpause, because the grace time may expired due to the pause
Disproportionately affects users already in distress
Allow closeLiquidation()
to work during pause:
Add pause time tracking:
Modify interest calculation to exclude paused time:
This ensures users aren't unfairly penalized during protocol pauses and maintains their ability to close liquidations during emergencies.
Would you like me to elaborate on any part of this analysis?
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.