The GlobalConfigurationBranch::initialize function lacks zero address validation for the tradingAccountToken and usdToken parameters. This vulnerability allows these crucial protocol addresses to be potentially set to the zero address during initialization. Given that this function is likely to be called only once due to its initializer modifier, setting either of these addresses to zero could lead to permanent impairment of core protocol functionalities.
The GlobalConfigurationBranch::initialize function does not validate the tradingAccountToken and usdToken addresses for zero values. This lack of validation means that these addresses could be set to a zero address, which can potentially disrupt the intended functionality of the protocol. The affected code is as follows:
Setting tradingAccountToken or usdToken to a zero address can disrupt the protocol's operations, as these addresses are likely critical for token-related functionalities.
A zero address for these tokens would mean that the contract cannot interact with these tokens, leading to failures in functions that depend on them.
Manual Review
Implement zero address checks for both tradingAccountToken and usdToken parameters. Add the following checks at the beginning of the initialize function:
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.