The GlobalConfigurationBranch
contract does not directly initialize the OwnableUpgradeable
contract, which is necessary for the ownership functions to work correctly. The comment suggests that this initialization happens in UpgradeBranch
, but there is no direct connection between the two contracts.
The comment in GlobalConfigurationBranch
indicates that OwnableUpgradeable
is initialized in UpgradeBranch
.
However, there is no inheritance or direct interaction between these contracts. Here is UpgradeBranch:
As seen, UpgradeBranch
indeed initializes OwnableUpgradeable
and sets the owner
but just within it. However, GlobalConfigurationBranch
is not linked to this in any way.
Without proper initialization of OwnableUpgradeable
, the onlyOwner
modifier and other ownership-related functions in GlobalConfigurationBranch
will not function correctly.
Manual Review
GlobalConfigurationBranch
should inherit from UpgradeBranch
to leverage the ownership initialization.
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.