In upgradable contracts, there should be a storage location for variables to get added freely without causing any storage collision. In Bridge.sol
we can see that the contract inherits from a lot of contracts each of them has its own variables.
If we checked StarklaneState
for example we will find that it has its own variables.
Since the idea of upgrading the contract is either adding features or fixing issues, there can be new variables added. So any addition of new variables in one of the child contracts that Bridge
inherits from them, will result in storage collision and corruption of all the contract states.
Inability to add new features / fix issues to the contract, which will require adding variables to contracts That Bridge
inherit from it.
Manual Review
Adding Storage Gap to All Contracts that the Bridge
contract Directly inherits from them, this includes UUPSOwnableProxied
, StarklaneState
, StarklaneEscrow
, StarklaneMessaging
, and CollectionManager
.
Known issue: Lightchaser
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.