There is no access control while initialising safe manager & nftRenderer so mev bots can monitor the deployment of Vault721 contract and initialise both safe manager & nftRenderer with malicious addresses and brick the protocol until the governer can update the addresses
Proof of Concept
The mev bot can have the following contracts set as safe manager and NFT renderer
Lines of code
https://github.com/open-dollar/od-contracts/blob/v1.5.5-audit/src/contracts/proxies/Vault721.sol#L56 https://github.com/open-dollar/od-contracts/blob/v1.5.5-audit/src/contracts/proxies/Vault721.sol#L63
Vulnerability details
Impact
There is no access control while initialising safe manager & nftRenderer so mev bots can monitor the deployment of
Vault721
contract and initialise both safe manager & nftRenderer with malicious addresses and brick the protocol until the governer can update the addressesProof of Concept
The mev bot can have the following contracts set as safe manager and NFT renderer
now this would mean that no one would be able to mint a safe since there is no
transferSAFEOwnership
method until the governer updates the addressesTools Used
manual review
Recommended Mitigation Steps
add access control in the initialize methods and hence add
onlyGovernor
modifier there too so avoid any sort of hindrance to the protocolAssessed type
Access Control