The ownership pattern implementation is linked to the Ownable
contract where a single-step transfer is implemented.
This can lead to problem for all methods marked in onlyOwner throughout the codebase, in which some of have core protocol functionality.
SmartVaultManagerV5
and LiquidationPoolManager
contract utilizes Ownable
and OwnableUpgradeable
contract which is prone to error due to lack effective control.
Single-step transfer of ownership means, if a wrong address is passed during transferring of ownership it will result in loss of owner based role forever.
Manual Code Review
It is a best practice to use two-step ownership transfer pattern where ownership transfer gets to a "pending" state and the new owner should claim his new rights, otherwise the old owner will still has control of the contract.
Consider using OpenZeppelin's Ownable2Step contract.
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.