The stability pool contains in its storage multiple variables to track managers and their respective allocations. The owner can add and remove managers, and update their allocations for performing liquidations.
The problem arises because liquidateBorrower
function doesn't check who is msg.sender
in order to update allocation:
liquidateBorrower
can only be called by the owner or a manager. If it is called by a manager, the corresponding allocation should be updated, as well as totalAllocation
.
The impact of this issue is medium as it leads to incorrect internal accounting, allowing managers to liquidate more than they are authorised.
Manual review
Modify the liquidateBorrower
function to make sure manager allocations are correctly tracked.
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.