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.