An improperly implemented upgradeable smart contract can compromise its functionality or security. The storage contracts, inheriting from UpgradeableStorage, lacks an initialization function. While the proxy pattern handles upgrades, the storage contract requires proper initialization to correctly set its state upon deployment.
Missing Initialization Function: The CapitalPoolStorage
contract, which is meant to be upgradeable, lacks an initialize()
function. This is crucial for properly setting up the initial state of an upgradeable contracs.
Inability to properly initialize the contract state in upgrades.
Potential storage collisions leading to data corruption or unexpected behavior.
Manual Code Review
To mitigate this risk, the CapitalPoolStorage
contract (and other related storage contracts) should include an initialize
function that properly sets up the contract's state
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.