The upperBound
account id in LiquidationBranch::checkLiquidatableAccounts()
is neglected in the loop. If this account id happens to be liquidatable, it will be missed and could result in losses for the protocol.
Let's take a look at the code, and while doing so, pay attention to the comment.
LiquidationBranch::checkLiquidatableAccounts()
In the for loop
, the upperBound
account id will be missed because of the wrong comparison operator.
The upperBound
account id should have been included in the loop by replacing less than
to less than or equal to
.
The protocol will lose funds if the missed
account id happens to be liquidatable
or already in an insolvent state. This means the protocol will absorb these losses. The extent of the loss also depends on the size of the position taken.
Manual Review
Change the comparison operator from <
to <=
.
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.