OwnableUpgradeable and Ownable expose a function renounceOwnership() which can be used to surrender control of contracts with owners.
This may result in the removal of ownership for LiquidationPoolManager and SmartVaultManagerV5; ultimately breaking the protocol.
The LiquidationPoolManager and SmartVaultManagerV5 contracts inherit from Ownable and OwnableUpgradeable respectively, and hence inherit the renounceOwnership() function.
The owner of these contracts can accidentally (or intentionally) call renounceOwnership() which will transfer the ownership to address(0). This will break all functionality of the protocol that uitlises the onlyOwner() modifier; below is a list of those functions:
LiquidationPoolManager::setPoolFeePercentage()
SmartVaultManagerV5::setMintFeeRate
SmartVaultManagerV5::setBurnFeeRate
SmartVaultManagerV5::setSwapFeeRate
SmartVaultManagerV5::setWethAddress
SmartVaultManagerV5::setSwapRouter2
SmartVaultManagerV5::setNFTMetadataGenerator
SmartVaultManagerV5::setSmartVaultDeployer
SmartVaultManagerV5::setProtocolAddress
SmartVaultManagerV5::setLiquidatorAddress
Manual Review
Disable renounceOwnership() if this feature is not required
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.