no check to verify if initializables.length is equal to initializePayloads.length in branch upgrade function
From the above code, we can see that there is no check to verify if initializables.length is equal to initializePayloads.length.
UpgradeBranch::upgrade call RootUpgrade::upgrade. RootUpgrade::upgrade call RootUpgrade::initializeRootUpgrade.
None of these three functions (RootUpgrade::initializeRootUpgrade, RootUpgrade::upgrade and UpgradeBranch::upgrade) perform this check.
Due to the lack of a check to ensure that initializables.length is equal to initializePayloads.length, a mismatch in the lengths of the two arrays during the for loop can occur. This maybe lead to a delegatecall to an address with a data input of empty.
manual
Add checks if initializables.length is equal to initializePayloads.length.
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.