Incorrect implementation of upgradeable OperatorStakingPool can lead to future storage collisions upon contract upgrade.
The OperatorStakingPool is designed to be UUPSUpgradeable. However, it lacks one core best practice regarding UUPSUpgradeable contracts.
It lacks the provision of reserved storage slots: uint256[] __gap.
For more details on how to implement UUPS Upgradeable contracts, watch Guardian Audit Owen's YouTube video here: https://youtu.be/6aPyykZhglM?si=CfSLd3ENICZD8pLg
Storage collision in future upgrades is possible.
Manual Review.
Include uint256[] __gap .
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.