NFTBridge
60,000 USDC
View results
Submission Details
Severity: low
Valid

Upgradeable contract doesn't call `disableInitializers`

Summary

The codebase has a number of upgradeable contracts which use OpenZeppelin Initializable but don't have a constructor which calls _disableInitializers per the OpenZeppelin documentation.

Impact

Contract implementations could be initialized when this should not be possible.

Tools Used

Manual Review

Recommendations

Contracts meant to be upgreadable like Bridge.sol should implement disableInitializers in their constructor this way:

constructor() {
_disableInitializers();
}
Updates

Lead Judging Commences

n0kto Lead Judge 10 months ago
Submission Judgement Published
Validated
Assigned finding tags:

finding-initialize-on-implementation

Likelyhood: Low/Medium Impact: Very low, the attacker can at most run the protocol on their side and lead a phishing campaign with an address deployed by Ark.

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.