Omniscia Rari Capital Audit
CDaiDelegate Manual Review Findings
CDaiDelegate Manual Review Findings
CDD-01M: Inconsistent Access Control
Type | Severity | Location |
---|---|---|
Logical Fault | Minor | CDaiDelegate.sol:L31, L73 |
Description:
The linked require
checks seem to be unadjusted code from the original Compound codebase and do not conform to the new access-control paradigm of utilizing the hasAdminRights()
utility function that contains additional checks.
Example:
contracts/CDaiDelegate.sol
30function _becomeImplementation(bytes memory data) public {31 require(msg.sender == admin, "only the admin may initialize the implementation");3233 (address daiJoinAddress_, address potAddress_) = abi.decode(data, (address, address));34 return _becomeImplementation(daiJoinAddress_, potAddress_);35}
Recommendation:
We advise them to be replaced by proper invocations of the hasAdminRights()
inherited function.
Alleviation:
The Rari team responded by stating that they slimmed down the codebase prior to the audit and reverted certain changes they had made to the admin-specific access control imposed on certain functions. In the latest commit, they have restored all references to hasAdminRights()
ensuring proper enforcement of the new access control system.