Storage of upgradeable contracts will be corrupted during an upgrade.
Note! Contracts In BOLD don't have gaps while Italic do have
StackingPool -> StackingRewardsPool
Startegy -> VaultControllerStrategy -> CommunityVCS and OperatorVCS
The problem is that those contracts have storage variable and not only view functions or immutable variables, and they should be upgradable compliant
If any storage variable would be added to them during upgrade, then they would be prone to storage corruption for the inheriting contracts that are in-scope like CommunityVCS
StackingPool
OperatorVCS
and some storage will be overridden in the mentioned contracts
Without gaps, adding new storage variables to any of these contracts can potentially overwrite the beginning of the storage layout of the child contract, causing critical misbehaviors in the system.
During contract upgrades some storage variables will be overridden and according to the importance of that variable will be the impact
can be up to whole functionality halt
Add storage gaps in every upgradable contract and their parents as recommended by openzeppeline
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.