Risk of storage collision during update.
The OperatorVCS contract inherit from the VaultControllerStrategy
contract OperatorVCS inherits contract VaultControllerStrategy, which in turn inherits contract Strategy. The latter inherits UUPSUpgradeable, which means that all its children can be upgraded. And when it comes to upgrading smart contracts, one of the most important points to bear in mind is the collision of storage spaces. For this reason, we recommend adding a gap variable to reserve space for future changes. However, in this style of inheritance, this reservation should only be made in contracts that introduce new variables in addition to those they inherit. And in our situation `OperatorVCS` introduces new variables but no space has yet been reserved for future changes, which can cause a storage collision during the update:
Storage conflicts during the update.
Manual analysis.
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.